2.1. Pengantar Operator dan Ungkapan

Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi. Sebagaian operator C++ tergolong sebagai operator binary, yaitu operator yang dikenakan terhadap dua buah nilai (operand).
Contoh :

a + b

simbol “  +  “  merupakan operand  untuk melakukan penjumlahan dari  a  dan b.  Karena operator penjumlahan melibatkan dua operand, operator penjumlahan tergolong sebagai operator binary.
Contoh lain :

-c
simbol “ – “ (minus) merupakan unary, karena hanya memiliki sebauh operand (yaitu c pada contoh diatas).
Ungkapan (ekspresi) dalam C++ dapat berupa :

-     Pengenal

-     Konstanta

-     Diantara kombinasi elemen diatas denan operator

Contoh ungkapan :

3 + 2 - 1

Pada ungkapan diatas, 3,2 dan 1 merupakan operand dan simbol “ + “ serta “ – “ adalah operator. Nilai

ungkapan sendiri adalah hasil penjumlahan 3 dan 2, dikurangi 1.


2.2. Operator Aritmatika

Operator  untuk  aritmatika  yang  tergolong  sebagai  operator  binary.  Contoh  penggunan operator aritmatikamisalnya untuk memperoleh nilai diskriminan darisuatu persamaan kuadrat.
d = b2 – 4ac

untuk mengimplementasikan contoh diatas adalah seperti berikut :

d = b * b – 4 * a * c ;


Contoh program :

//*-----------------------------------------------------------*

//* contoh 2.1 : Contoh pemakaian operator            *

//*                     Aritmatika                                      *

//*-----------------------------------------------------------*

#include <iostream.h>

#include <conio.h>
void main()

{

int a, b, c, d;

clrscr();

a = 5;

b = 600;

c = 5;

d = b * b – 4 * a * c;

cout << “ d = “ << d << ‘\n’;

}


Hasil eksekusi :

d = 32220


Operator aritmatika mempunyai prioritas pengerjaan. Prioritas yang tinggi akan diuatamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki prioritas yang lebih rendah. Urutan
prioritas dapat dilihat dalam tabel berikut ini :

Operator Prioritas
+ --  (Khusus yang berkedudukan

sebagai awalan) Tertinggi
-         ( Unary Minus )
* / %
+ - Terendah


Jika operator memiliki prioritas yang sama, operator sebelah kiri akan diutamakan untuk dikerjakan terlebih dahulu.
Tanda kurung biasa digunakan untuk merubah urutan pengerjaan. Misalnya :        x = ( 2 + 3) * 2 ;
akan memberikan nilai 10 ke x, sebab 2 + 3 dikerjakan terlebih dahulu dan hasilnya baru dikalikan dengan 2.
Contoh program :

//*---------------------------------------------------------------*

//* Contoh 2.2 : Penggunaan kurung untuk mengatur   *

//*                     prioritas pengerjaan terhadap suatu     *

//*                     operasi                                                   *

//*---------------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{
clrscr()

int x ;

x = 2 + 3 * 2 ;

cout << “ x = “ << x << ‘\n’;

x = (2 + 3) * 2 ;

cout << “ x = “ << x << ‘\n’;

}

Hasil eksekusi :               8
12





2.2. Operator Sisa Pembagian
Operator sisa pembagian (operator modulus) yang berupa %. Operator ini diterapkan pada operand bertipe integer. Untuk lebih jelasnya perhatikan contoh berikut :

7 % 2  1 Sisa pembagian bilangan 7 dengan 2 adalah 1
6 % 2  0 Sisa pembagian bilangan 6 dengan 2 adalah 0
8 % 3  2 Sisa pembagian bilangan 8 dengan 3 adalah 2


Contoh program :

//*----------------------------------------------------------*

//* Contoh 2.3 : Melihat sisi pembagian dengan     *

//*                     menggunakan operator %.              *

//*----------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{

clrscr();

cout << 5 % 7 << ‘\n’;   //sisa 5 cout << 6 % 7 << ‘\n’;   //sisa 6 cout << 7 % 7 << ‘\n’;   //sisa 0 cout << 8 % 7 << ‘\n’;   //sisa 1
cout << 9 % 7 << ‘\n’;   //sisa 2                  5
}                                                                        6
Hasil eksekusi :                                                   0
1
2
Kegunaan operator % diantaranya bisa dipakai untuk menentukan suatu bilangan bulat termasuk ganjil atau genap.


2.3. Operator Penurunan dan Penaikan

Kedua operator ini digunakan pada operand bertipe bilangan bulat. Operator penaikan digunakan untuk menaikan nilai variabel sebesar satu, sedangkan operator penurunan dipakai untuk menurunkan nilai variabel sebesar satu. Sebagai contoh :
x = x + 1 ;

y = y – 1 ;

bisa ditulis menjadi :

++ x ;

-- y ;

atau :

x ++ ;

y -- ;


Panaikan dibelakang

Efek peletakkan tanda ++ dibelakang variabel ditunjukkan pada program berikut : Contoh program :
//*-----------------------------------------------------------*

//* Contoh 2.4 : Pemakaian operator penaikan di    *

//*                     belakang variabel                           *

//*-----------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{

int r = 10; int s; clrscr();
s = 10 + r++ ;

cout << “ r = “ << r << ‘\n’ ;


cout << “s = “ << s << ‘\n’ ;

}
r = 11
Hasil eksekusi :

s = 20
Pada contoh diatas s diisi dengan penjumlahan nilai 10 dan r. Dengan demikian s akan bernilai 20. setelah s diisi dengan 20, nilai r baru dinaikan karena operator ++ ditulis dibelakang r. Disebut post- increment yang artinya dinaikkan dibelakang setelah penjumlahan anatara r dan 10 dilaksanakan.


Penaikan di Depan

Efek peletakkan tanda ++ di depan variabel ditunjukkan pada program berikut ini : Contoh program :
//*-----------------------------------------------------------*

//* Contoh 2.4 : Pemakaian operator penaikan di    *

//*                     belakang variabel                           *

//*-----------------------------------------------------------*


#include <iostream.h>

#include <conio.h>

void main()

{

int r = 10; int s; clrscr();
s = 10 + ++r ;

cout << “ r = “ << r << ‘\n’ ;

cout << “s = “ << s << ‘\n’ ;

}
r = 11 s = 21
Hasil eksekusi :


Pada contoh ini, nilai r mula-mula dinaikan terlebih dahulu karena operator ++ ditempatkan didepan r. Disebut pre-increment kemudian nilainnya dijumlahkan dengan 10 dan diberikan ke s. Dengan demikian s bernilai 21 dan r sama dengan 11.


2.4. Operator Majemuk

Operator majemuk digunakan untuk memendekkan penulisan operasi penugasan semacam :

x = x + 2 ;

y = y * 4 ;

menjadi :



x += 2;

y *= 4;
Contoh program :

//*--------------------------------------------------------------*

//* Contoh 2.5 : penggunaan operator majemuk           *

//*--------------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{

int x = 2; // Mula-mula x bernilai 2 clrscr();
cout << “x = “ << x << ‘\n’ ;

x += 3 ;

cout << “Setelah x += 3, x = “ << x << ‘\n’ ;

x *= 2 ;

cout << “Setelah x *= 2, x = “ << x << ‘\n’ ;

}

x = 2
Hasil eksekusi :

Setelah x += 3, x = 5
Setelah x += 3, x = 5




2.5. Operator Kondisi
Operator kondisi biasa dipakai untuk mendapatkan sebuah nilai dari dua buah kemungkinan, berdasarkan suatu kondisi. Format pemakaiannya :

ungkapan1 ? ungkapan 2 : ungkapan 3


Contoh program :

//*-----------------------------------------------------------*

//* Contoh 2.7 : Penggunaan operator kondisi untuk *

//*                     memperoleh bilangan terkecil         *

//*                      diantara dua buah bilangan             *

//*------------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{

int bil1, bil2, minim;

clrscr();

bil1 = 53;
bil2 = 6;

minim = bil1 < bil2 ? bil1 : bil2;

cout << “ Bilangan terkecil = “ << minim << ‘\n’;

}
Bilangan terkecil = 6

Hasil eksekusi :


minim = bil1 < bil2 ? bil1 : bil2;

akan menyebabkan minim bernilai bil1 kalau ungkapan :

bil1 < bil2

bernilai benar. Untuk keadaan sebaliknya, minim akan bernilai bil2.


2.6. Ungkapan Kondisi

Ungkapan adalah ungkapan yang menjadi dasar bagi pernyataan berkondisi (misalnya if ). Hasil ungkapan berupa 1  kalau ungkapan bernilai benar dan ungkapan berupa 0 kalau ungkapan bernilai salah.
Oprator Relasi
Operator  biasa digunakan untuk membandingkan dua buah nilai. Macam operator relasi dapat dilihat dalam tabel berikut :
Operator
Keterangan
==
Sama dengan (bukan penugasan)
!=
Tidak sama dengan
> 
Lebih dari
< 
Kurang dari
>=
Lebih dari atau sama dengan
<=
Kurang dari atau sama dengan
Contoh program :

//*------------------------------------------------*

//* Contoh 2.6 : untuk menunjukkan nilai  *

//*                     hasil ungkapan kondisi     *

//*------------------------------------------------*

#include <iostream.h>

#include <conio.h>

void main()

{

int nilai;

clrscr();

nilai = 3 > 2 ; // hasil ungkapan : benar 
cout << “Nilai = “ << nilai << endl; nilai = 2 > 3 ; // hasil ungkapan : salah cout << “Nilai = “ << nilai << endl;
}

Nilai = 1 
Hasil eksekusi :
Nilai = 0 




Agar tidak salah dalam menuliskan suatu ungkapan, pengetahuan tentang prioritas operator perlu diketahui.
Contoh 1 :

a = b = c

pada pernyataan diatas, operator yang dilibatkan ( = ) mempunyai sifat pengerjaan dimulai dari kanan. Berarti :
b = c

akan dikerjakan terlebih dahulu, barulah kemudian mengerjakan :

a = b

Contoh 2 :       x = 2 * 3 * 4 ;

pada pernyataan diatas, 2 * 3 akan dikerjakan terlebih dahulu, barulah kemudian mengerjakan perkalian hasil 6 dengan 4. Adapun prioritas  = lebih rendah dari *, maka 2 * 3 * 4 dikerjakan lebih dahulu. Selanjutnya hasilnya baru diberikan ke x.


2.7. Fungsi Pustaka

Dalam melakukan operasi seperti memeperoleh akar kuadrat ataupun memeperoleh logaritma alamiah  dari  suatu  nilai.  Pada  C++  memang tidak  terdapat operator-operator yang  khusus untuk melaksanakan operasi-oerasi seperti itu. Tetapi tidak berarti C++ tidak dapat melakukan operasi itu. C++ menyediakan sejumlah fungsi pustaka (library fuctions) yang dirancang untuk memenuhi solusi dari berbagai persoalan.
Misalkan kita akan menghitung sebuah akar kuadrat, pemrogram bisa menggunakan fungsi

sqrt(). Seperti contoh program berikut : Contoh program :
//*-----------------------------------------------------------*

//* Contoh 2.7 : Pemakaian pustaka fungsi sqrt()     *

//*-----------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

#include <math.h> // Perlu disertakan untuk funsi sqrt()

void main ()

clrscr();

cout << “Akar dari 27 = “ << sqrt(27) << ‘\n’;


Hasil eksekusi :

Akar dari 27 = 5.196152 


Jika program ingin menggunakan fungsi pustaka, perlulah untuk mencatumkan deklarasi dari funsi bersangkutan. Untuk keperluan ini program mesti menyertakan baris :
#include <nama_file>

degan nama_file adalah nama header, yaitu file yang berakhiran .h. sebagai contoh program diatas menyertakan #include <math.h> disebabkan file  header tersebut berisi deklarasi (prototipe) dari fungsi sqrt().