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 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().