Berlangganan

About Me


III. OPERATOR

III. OPERATOR


Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi.

Contoh :   a = b + c * d / 4
                 a, b, c, d à disebut operand
                 =, +, *, /  à disebut operator


3.1 OPERATOR ARITMATIKA

Operator
Deskripsi
Contoh
+
Penjumlahan ( Add )
m + n
-
Pengurangan ( Substract )
m – n
*
Perkalian ( Multiply )
m * n
/
Pembagian ( Divide )
m / n
%
Sisa Pembagian Integer ( Modulus )
m % n
-
Negasi ( Negate )
-m
NB : Operator seperti operator negasi (-) disebut unary operator, karena   membutuhkan hanya satu buah operand

Contoh :
#include <iostream.h>
void main()
{
 int m = 82, n = 26;
 cout<<m<<" + "<<n<<" = "<<m+n<<endl;
 cout<<m<<" - "<<n<<" = "<<m-n<<endl;
 cout<<m<<" * "<<n<<" = "<<m*n<<endl;
 cout<<m<<" / "<<n<<" = "<<m/n<<endl;
 cout<<m<<" % "<<n<<" = "<<m%n<<endl;
 cout<<"-"<<m<<" = "<<-m<<endl;
}

Keluarannya :
82 + 26 = 108
82 - 26 = 56
82 * 26 = 2132
82 / 26 = 3
82 % 26 = 4
-82 = -82
Karena tipe datanya adalah int, maka 82/26=3, supaya dapat merepresentasikan nilai yang sebenarnya, gunakan tipe data float.

Cara lain penulisan dengan menggunakan operator aritmatika :
m = m + n       ó        m += n
m = m - n        ó        m -= n
m = m * n       ó        m *= n
m = m / n        ó        m /= n
m = m % n     ó        m %= n


3.2 OPERATOR NAIK DAN TURUN ( INCREMENT DAN DECREMENT )

Operator increment  à ++
Operator decrement à --

Contoh :
#include <iostream.h>
main()
{
   int m = 44, n = 66;
   cout<<”m = “<<m<<”, n = “<<n<<endl;
   ++m; --n;
   cout<<”m = “<<m<<”, n = “<<n<<endl;
   m++; n--;
   cout<<”m = “<<m<<”, n = “<<n<<endl;
   return 0;
}

Keluarannya :
m = 44, n = 66
m = 45, n = 65
m = 46, n = 64

   Terlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m ( m = m+1). Hal yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n - 1).
   Tetapi bila digunakan sebagai sub-ekspresi, operator post-increment dan pre-increment menunjukkan hasil yang berbeda
Contoh :
#include <iostream.h>
main()
{
   int m = 66, n ;
            n = ++m;
   cout<<"m = "<<m<<", n = "<<n<<endl;
            n = m++;
   cout<<"m = "<<m<<", n = "<<n<<endl;
   cout<<"m = "<<m++<<endl;
            cout<<"m = "<<m<<endl;
   cout<<"m = "<<++m<<endl;
            return 0;
}

Keluarannya :
m = 67, n = 67
m = 68, n = 67
m = 68
m = 69
m = 70

Penjelasan :
Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi 67, yang selanjutnya dimasukkan ke n.
Dalam penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m = 68 dan n = 67.
Dalam penugasan ketiga, m adalah post-increment, sehingga nilai m ( = 68 ) ditampilkan dahulu ( ke layar ) baru kemudian nilai m dinaikkan menjadi 69.
Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu menjadi 70 baru kemudian ditampilkan ke layar.
Supaya lebih paham, perhatikan pula contoh dibawah.

Contoh :
#include <iostream.h>
main()
{
   int m = 5, n;
   n = ++m * --m;
   cout<<"m = "<<m<<", n = "<<n<<endl;
   cout<<++m<<” “<<++m<<” “<<++m<<endl;
   return 0;
}

Keluarannya :
m = 5, n = 25
8 7 6

Penjelasan :
Dalam penugasan untuk n, pertama kali m dinaikkan (++m)  menjadi 6, kemudian m diturunkan kembali menjadi 5, karena adanya --m. Sehingga nilai m sekarang adalah 5 dan nilai m = 5 inilah yang dievaluasi pada saat penugasan perkalian dilakukan.
Pada baris terakhir, ketiga sub-ekspresi dievaluasi dari kanan ke kiri.


3.3 OPERATOR BITWISE

Operator
Deskripsi
Contoh
<< 
Geser n bit ke kiri ( left shift )
m << n
>> 
Geser n bit ke kanan ( right shift )
m >> n
&
Bitwise AND
m & n
|
Bitwise OR
m | n
^
Bitwise XOR
m ^ n
~
Bitwise NOT
~m
NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char

Berikut ini diberikan tabel kebenaran untuk operator logika
P = A operator B


AND
OR
A
B
P
0
0
0
0
1
0
1
0
0
1
1
1
A
B
P
0
0
0
0
1
1
1
0
1
1
1
1

XOR

A
B
P
0
0
0
0
1
1
1
0
1
1
1
0



Contoh :
#include <iostream.h>
void main()
{
 int m = 82, n = 26;
 cout<<m<<" << 2"<<" = "<<(m<<2)<<endl;
 cout<<m<<" >> 2"<<" = "<<(m>>2)<<endl;
 cout<<m<<" & "<<n<<" = "<<(m&n)<<endl;
 cout<<m<<" | "<<n<<" = "<<(m|n)<<endl;
 cout<<m<<" ^ "<<n<<" = "<<(m^n)<<endl;
 cout<<"~"<<m<<" = "<<~m<<endl;
 }

Keluarannya :
82 << 2 = 328
82 >> 2 = 20
82 & 26 = 18
82 | 26 = 90
82 ^ 26 = 72
~82 = 83

Penjelasan :
Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatas merupakan keluaran dari compiler Turbo C++.
Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untuk mengetahuinya digunakan perintah
            cout<<sizeof(int)<<endl; // Untuk mengetahui besar dari int
Maka :
8210 =  00000000010100102  dan
2610 =  00000000000110102
Sehingga :
82 << 2 à 00000001010010002 = 32810
82 >> 2 à 00000000000101002  = 2010
82 & 26 à 0000000001010010
                           00000000000110102
                           ------------------------------------------  &
                           00000000000100102 = 1810
dan begitu juga untuk operasi OR dan XOR.
~82 à digunakan 2’s complement, yaitu
            8210 =  00000000010100102  lalu dinegasikan tiap bitnya menjadi
                        11111111101011012  kemudian LSB ditambah 1 menjadi
                        1111111110101110 = 6545410  nilai ini melebihi jangkauan maksimum int yang berkisar di -32768 sampai 32767, sehingga nilai yang keluar yaitu 83.

Cara lain penulisan dengan menggunakan operator bitwise :
m = m << n    ó        m <<= n
m = m >> n    ó        m >>= n
m = m & n      ó        m &= n
m = m | n        ó        m |= n
m = m ^ n       ó        m ^= n                          





3.4 OPERATOR RELASI

Operator relasi digunakan untuk membandingkan dua buah nilai. Operator ini biasa digunakan dalam instruksi percabangan.
Operator
Deskripsi
==
Sama dengan ( bukan assignment )
!=
Tidak sama dengan
Lebih besar
Lebih kecil
>=
Lebih besar atau sama dengan
<=
Lebih kecil atau sama dengan

Contoh:
#include <iostream.h>
main()
{
   int m = 5, n =7;
   if(m == n) cout<<m<<” sama dengan ”<<n<<endl;
   else  if(m != n) cout<<m<<” tidak sama dengan ”<<n<<endl;
   else  if(m > n) cout<<m<<” lebih besar dari ”<<n<<endl;
   else  if(m < n) cout<<m<<” lebih kecil dari ”<<n<<endl;
   return 0;
}

Keluarannya :
5 lebih kecil dari 7


3.5 OPERATOR LOGIKA

Operator logika digunakan untuk menghubungkan dua atau lebih  ungkapan menjadi sebuah ungkapan berkondisi.

Operator
Deskripsi
Contoh
&&
logic AND
m && n
||
logic OR
m ||n
!
logic NOT
!m

Contoh :
#include <iostream.h>
void main()
{
   int m = 166;
   cout<<”(m>=0 && m<=150) à “<<(m>=0 && m<=150)<<endl;
   cout<<”(m>=0 || m<=150) à “<<(m>=0 || m<=150)<<endl;
}

Keluarannya :
(m>=0 && m<=150) à 0
(m>=0 || m<=150) à 1

Penjelasan :
Hasil / keluaran dari operator logika adalah 0 dan 1.
0 jika keluarannya salah dan 1 jika keluarannya benar.


3.6 OPERATOR KONDISI

Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan
            ungkapan1 ? ungkapan2 : ungkapan3
Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3

Contoh :
#include <iostream.h>
main()
{
   int m = 26, n = 82;
   int min = m < n ? m : n;
   cout<<”Bilangan terkecil adalah “<<min<<endl;
   return 0;
}

Keluarannya :
Bilangan terkecil adalah 26



Operator relasi, logika dan kondisi akan banyak digunakan pada pernyataan berkondisi














0 Response to "III. OPERATOR"

Post a Comment