Site icon agussuratna.net

Tutorial C++ : #7 Operator pada Bahasa Pemrograman C++ dan Fungsinya

Operator adalah tanda/simbol yang digunakan untuk melakukan operasi-operasi tertentu di dalam program. Dengan operator kita dapat melakukan operasi perhitungan, perbandingan, manipulasi bit dan lain-lain.
Sedangkan Operand adalah nilai asal yang digunakan didalam proses operasi (nilai yang dioperasikan).

Contohnya operasi dalam matematika : 7+5=12. Angka 7 dan 5 adalah operand, sedangkan tanda tambah (karakter +) adalah operator, 12 adalah hasil dari operasi.

Secara garis besar operator dalam bahasa pemograman C++ terbagi menjadi 4 bagian, yaitu operator :
  • Operator Assignment
  • Operator Unary
  • Operator Binary
  • Operator Ternary.

A. Operator Assignment  (=)

Operator ini berfungsi untuk memberikan nilai kepada variabel. Operator assignment menggunakan simbol = (sama dengan 1x). 
Contoh :
A=10 ;
B=5;
Sebagai contoh diatas, kita akan memberikan nilai bilangan bulat 10 ke dalam variabel A, cara membacanya “10 dimasukan ke dalam varible A” dan nilai 5 ke dalam variabel B, cara bacanya “5 dimasukan ke dalam vaviable B”.
Contoh program :
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int A,B;    //deklarasi variable A dan B, variable A dan B belum diberi nilai

    A=10;   //A diberi nilai (diinisialisasi) dengan nilai 10
    B=5;    //B diberi nilai (diinisialisasi) dengan nilai 5
    A=B;    //A diberi nilai (diinisialisasi) dengan nilai yang terkandung dalam variabel B
    B=7;    //B diberi nilai (diinisialisasi) dengan nilai 7

    cout<<"nilai A adalah : "<< A << endl;
    cout<<"nilai B adalah : "<< B << endl;

    return 0;
    system("pause");
}
Program ini akan mencetak pada layar seperti berikut :

Perhatikan bagaimana sebuah variabel A tidak terpengaruh oleh modifikasi akhir dari B, meskipun kita menyatakan A = B sebelumnya.Catatan: Operasi ini berlangsung dari kanan ke kiri, jadi cara membacanya dari belakang dulu, seperti contoh A=10; cara membacanya “10 dimasukan ke dalam varible A.

B. Operator Unary 

Operator unary adalah operator yang digunakan untuk melakukan operasi metematik yang hanya melibatkan satu buah operand. Yang termasuk ke dalam operator unary adalah sebagai berikut.
Yang termasuk ke dalam operator unary yaitu operator increment dan decrement

1. Increment

a. Pre-Increment

Pre-increment berarti menaikkan nilai yang terdapat pada sebuah variabel sebelum nilai dari variabel tersebut diproses di dalam program. Operator ++ akan dianggap sebagai pre-increment apabila dituliskan di depan nama variabel atau nilai yang akan dinaikkan. Sintak program berikut merupakan contoh untuk membuktikan operator pre-increment.
Contoh 1 :
#include <iostream>
#include <cstdlib>
using namespace std; 
int main() 
{ 
    int data; 
    int x = 7; 
    data = ++x;    //pre-increment 
    
    return 0; 
    system("pause"); 
}

Contoh 2 :

#include <iostream> 
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    int A, B; 
    A = 6; B = ++A; 
    cout<<"Nilai A adalah : "<<A<<endl; 
    cout<<"Nilai B adalah : "<<B<<endl; 

    return 0; 
    system("pause"); 
}

Hasilnya variabel A akan bernilai 6, dan B bernilai 7. Karena nilai dari B adalah nilai A yang telah ditingkatkan.

 

b. Post-Increment 

Post-increment berarti menaikkan nilai yang terdapat pada sebuah variabel setelah nilai dari variabel tersebut diproses di dalam program. Pada post-increment operator ++ setelah variabel atau nilai yang akan dinaikkan. Sintak program berikut merupakan contoh untuk membuktikan post-increment.
#include <iostream>
#include<cstdlib>
using namespace std; 

int main() 
{ 
    int data; 
    int x = 7; 
    data = x++;     //post-increment 

    return 0; 
    system("pause"); 
}

 

B. Decrement

Decrement merupakan kebalikan dari increment, yang merupakan proses penurunan nilai dengan 1. Decrement juga dibagi menjadi dua macam, yaitu pre-decrement dan post-decrement.
Contoh:
#include <iostream>
#include <cstdlib>
using namespace std; 

int main() 
{ 
    int data; 
    int x = 7; 
    data1 = --x;     //pre-decrement 
    data2 = x--;     //post-decrement 

    return 0; 
    system("pause"); 
}

 

C. Operator Binary

Operator binary adalah operator yang digunakan untuk melakukan operasi yang melibatkan dua operand. Operator binary dibagi menjadi empat jenis, yaitu operator aritmetika, logika, relasional dan bitwise. 

1. Operator Aritmetika

Operator aritmatika yang sering digunakan dalam C++ adalah:

Contoh :
x=11%3;
Hasil dari operasi tersebut adalah 2, karena disini kita mencari sisa bagi dimana hasil bagi 11 dan 3 adalah 3 dan memiliki sisa bagi 2.
Contoh dalam sintak program :
#include <iostream>
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    int data1,data2,data3,data4; 
    int a = 100; 
    int b = 25; 
    int c = 225; 
    int d; 

    d = a + b; 
    data1 = a + c – b; 
    data2 = b*5; 
    data3 = data1/data2; 
    data4 = (b%2)*(c%2); 
    cout<<"Data 1 adalah : "<<data1<<endl; 
    cout<<"Data 2 adalah : "<<data2<<endl; 
    cout<<"Data 3 adalah : "<<data3<<endl; 
    cout<<"Data 4 adalah : "<<data4<<endl; 

    return 0; 
    system("pause"); 
}

 

2. Operator Logika

Operator logika adalah operator binary yang digunakan di dalam operasi yang hanya dapat menghasilkan nilai benar (true) atau salah (false). Nilai seperti ini disebut dengan nilai boolean. Adapun yang termasuk ke dalam operator logika dalam bahasa C++ adalah sebagai berikut :
Tabel kebenaran AND

Tabel kebenaran OR

Tabel kebenaran NOT


|| (OR) Jika salah satu operand bernilai benar (TRUE) maka kondisi bernilai benar.
(AND) Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar.
! (NOT) Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya.
( (5 == 5) && (3 > 6) )    // Hasil = false, karena ( true && false )
( (5 == 5) || (3 > 6) )        // Hasil = true, karena ( true || false )

Berikut ini adalah sintak program yang menggunakan operator logika.
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{

    int data1, data2;
    int a = 0;
    int b = 1;
    int c;

    data1 = a && b;
    data2 = a || b;
    c = !a;

    cout<<"Data 1 adalah : "<<data1<<endl;
    cout<<"Data 2 adalah : "<<data2<<endl;
    cout<<"c adalah : "<<c<<endl;

    return 0;
    system("pause");
}

 

3. Operator Relasional

Operator relasional adalah operator binary yang digunakan untuk menentukan relasi atau hubungan dari dua buah nilai atau operand. Operator ini terdapat dalam sebuah ekspresi yang selanjutnya akan menentukan benar atau tidaknya ekspresi tersebut. Operator relasi adalah operator yang digunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false. Operator ini digunakan untuk menguji hubungan antara nilai dan atau variabel. Berikut ini operator yang termasuk ke dalam operator relasional dalam bahasa C++ :
Operator relasional sama dengan (==) harap dibedakan dengan operator (=) yang merupakan operator penugasan (assignment).
Operator relasional biasa digunakan untuk melakukan pengecekan terhadap ekspresi di dalam blok pemilihan (if .. then .. else) yang akan kita ungkapkan pada bagian kontrol program.

Beberapa contoh pemakaian operator relasi

KondisiHasil

1 > 2   FALSE       dibaca : apakah 1 lebih dari 2 ?
1 < 2   TRUE         apakah 1 kurang dari 2 ?

A == 1
TRUE,   jika A bernilai 1;   FALSE, jika A tidak bernilai 1

‘A’ < ‘B‘
TRUE, karena kode ASCII untuk karakter ‘A’ kurang dari kode
ASCII untuk karakter ‘B’

jawab == ‘Y’
TRUE, jika jawab berisi ‘Y’; FALSE, jika jawab tidak berisi ‘Y’

Contoh program :

#include <iostream> 
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    bool nilai; 
    nilai = 3 > 2 ;                          // hasil ungkapan : benar 
    cout << "Nilai = " << nilai; 
    nilai = 2 > 3 ;                          // hasil ungkapan : salah 
    cout << "Nilai = " << nilai; 

    return 0; 
    system("pause"); 
}

Hasil:
Nilai = 1
Nilai = 0

4. Operator Bitwise 

Operator bitwise adalah operatos binary yang digunakan untuk menyelesaikan operasi-operasi bilangan dalam bentuk biner yang dilakukan bit demi bit. Dengan kata lain, operator bitwise ini berfungsi untuk melakukan pemanipulasian bit. Operasi ini merupakan operasi yang sangat vital, apabila program yang kita buat akan melakukan interaksi dengan perangkat keras (hardware). Meskipun bahasa pemrograman lebih bersifat data-oriented, namun perangkat keras masih bersifat bit-oriented.
Perlu ditekankan di sini bahwa operasi pemanipulasian bit ini hanya dapat dilakukan pada bilangan-bilangan yang bertipe char dan int saja, karena keduanya dapat berkorespondensi dengan tipe byte dan word di dalam bit. Adapun yang termasuk ke dalam operator bitwise di dalam bahasa C adalah sebagai berikut.
Berikut penjelasan singkat untuk masing-masing operator binary bitwise.

a. Operator bitwise AND, OR, dan Komplemen (&/I/~)

Fungsi dari operator binary bitwise AND (&), OR (|) dan Komplemen (~) sebenarnya sama dengan fungsi operator logika AND (&&), OR (||) dan NOT (!). Perbedaannya, operator bitwise melakukan operasinya bit demi bit, sedangkan operator logika melakukan operasi pada nilainya.
Contoh,
Apabila kita melakukan operasi logika 7 || 8, maka hasil yang akan didapatkan adalah 1, pasalnya nilai 7 & 8 akan dianggap sebagai nilai benar (true) sehingga operasi OR tersebut juga akan menghasilkan nilai true yang direpresentasikan dengan nilai 1. Namun, jika kita melakukan operasi bitwise 7 | 8, maka nilai 7 dan 8 tersebut akan dikonversikan ke dalam bilangan biner, setelah itu baru dilakukan operasi OR untuk setiap bitnya. Proses ini dapat direpresentasikan dengan cara berikut.
Cara kerja dari operator & dan ~ juga sama seperti di atas.
Contoh sintak program operator Bitwise AND (&) :
#include <iostream> 
#include <cstdlib>
using namespace std; 

int main()
{    
    int hasil, x, y;    
    cout<<"Masukan Nilai X = "; 
    cin>>x;
    cout<<"Masukan Nilai Y = ";
    cin>>y;
    hasil = x & y;
    cout<<"Hasil dari "<<x<<" & "<<y<<" = "<<hasil<<endl;
    
    return 0;
    system("pause");
}

 

Contoh sintak program operator Bitwise OR ( | ) :

#include <iostream>
#include <cstdlib>
using namespace std;

int main(){
    int hasil, x, y;
    cout<<"Masukan Nilai X = "; cin>>x;
    cout<<"Masukan Nilai Y = "; cin>>y;
    hasil = x | y;
    cout<<"Hasil dari "<<x<<" | "<<y<<" = "<<hasil<<endl;

    return 0;
    system("pause");
}
    

Contoh sintak program operator Bitwise NOT (~) :

#include <iostream>
#include <cstdlib> 
using namespace std; 

int main()
{
    int a, x;
    cout<<"Masukan Nilai X = ";
    cin>>x;

    a = ~x;
    cout<<"Hasil dari ~ "<<x<<" = "<<a<<endl;

    return 0;
    system("pause"); 
}

b. Operator bitwise Exclusive OR (^)

Operator XOR adalah operator binary bitwise yang akan memberikan nilai benar apabila hanya terdapat satu buah operand yang bernilai benar, selain itu akan menghasilkan nilai salah. Dengan demikian, apabila kedua operand-nya bernilai benar, operasi ini tetap akan menghasilkan nilai salah.

Contoh :

Apabila kita melakukan operasi 45 ^ 23, maka hasilnya adalah 58. Dengan proses operasi sebagai berikut.

Contoh sintak program operator Bitwise X-OR (^ ) :

#include <iostream>
#include <cstdlib> 
using namespace std; 

int main( ) 
{
    int a, b, x, y;
    cout<<"Masukan Nilai X = ";
    cin>>x;
    cout<<"Masukan Nilai Y = ";
    cin>>y;
    a = x ^ y;
    b = x ^ y ^ x;
    cout<<"Hasil dari "<<x<<" ^ "<<y<<" = "<<a<<endl;
    cout<<"Hasil dari "<<x<<" ^ "<<y<<" ^ "<<x<<" = "<<b<<endl;

    return 0;
    system("pause");
 }

 

c. Operator bitwise Geser Kanan / Shift Right ( >> )

Operator Bitwise Shift Right (>>) adalah operator yang akan mengeser nilai dalam bentuk bilangan biner ke kanan. Operator ini akan mengubah bilangan bulat menjadi bilangan biner setelah itu menggeser angka dari dari bilangan biner tersebut ke kanan dan pada akhirnya akan mengubahnya kembali ke bilangan bulat.

0000 0000 1100 1001 = 201 
//digeser 1 bit ke kanan, Dibagian kanan disisipkan 0, sebanyak bit yang digeser dan pada bagian paling kiri akan hilang
//Hasilnya menjadi 
0000 0000 0110 0100 = 100

Bentuk Penulisan :

Nilai >> jumlah;

Contoh Program :

#include <iostream> 
#include <cstdlib>
using namespace std; 
int main()
{
    int x;
    cout<<"Masukan Nilai X = ";
    cin>>x;
    cout<<"Nilai Awal : "<<x<<endl;
    
    x = x >> 1;
    cout<<"Hasil dari Geser 1 Bit Ke Kanan = "<<x<<endl;
    
    return 0;
    system("pause");
}

 

d. Operator bitwise Geser Kiri / Shift Left ( << )

Operator Bitwise Shift Left (<<) adalah operator yang akan menggeser nilai dalam bentuk bilangan biner ke kiri. Operator ini akan mengubah bilangan bulat menjadi bilangan biner lalu menggeser angka dari bilangan biner tersebut ke kiri dan setelah itu akan mengubahnya kembali ke bilangan bulat.

0000 0000 1100 1001 = 201 
//menggeser 1 bit ke kiri, Dibagian kanan disisipkan 0, sebanyak bit yang digeser 
0000 0001 1001 0010 = 402

Bentuk Penulisan :

Nilai << jumlah;

Contoh Program :

#include <iostream> 
#include <cstdlib>
using namespace std; 

int main()
{
    int x;
    cout<<"Masukan Nilai X = ";
    cin>>x;
    cout<<"Nilai Awal : "<<x<<endl;
    x = x << 1;
    cout<<"Hasil dari Geser 1 Bit Ke Kiri = "<<x<<endl;

    return 0; 
    system("pause");

}

D. Operator Ternary

Operator Ternary atau bisa disebut sebagai “Conditional Ternary Operator” merupakan salah satu dari tiga sifat Operator, operator yang akan melibatkan 3 buah operand dalam satu operasi. Operator ternary berfungsi untuk mengevaluasi ekspresi dan menentukan hasil berdasarkan kondisi, jika kondisi tersebut 1 ( true ) maka akan memilih pilihan ke satu, jika 0 ( false ) maka akan memilih pilihan ke dua.

Bentuk Penulisan

Ekspresi?nilaiSatu:nilaiDua;

Di atas melibatkan 3 operand yaitu sebagai ekspresi, nilaiSatu dan nilaiDua. Diletakan tanda ‘?’ di antara ekspresi dan pilihan nilai. Dan tanda ‘:’ di antara dua pilihan true atau false.

  • Eksepresi : merupakan tempat dimana kita dapat menuliskan sebuah ekspresi sebagai kondisi yang akan dievaluasi.operasi ini akan memecahkan masalah berdasarkan kondisi ekspresi dengan memilih dua pilihan “nilaiSatu” dan “nilaiDua” sebagai hasil operasi.
  • nilaiSatu : merupakan tempat untuk menempatkan nilai yang akan dipilih sebagai hasil akhir dari operasi ternary, tempat ini bersifat 1 (true). Dengan arti jika hasil operasi mempunyai kondisi 1 (true) maka otomatis operasi akan menghasilkan nilai yang ada pada pilihan ke satu “nilaiSatu”.
  • nilaiDua : merupakan tempat untuk menempatkan nilai yang akan dipilih sebagai hasil akhir dari operasi ternary, tempat ini bersifat 0 (false). Dengan arti jika hasil operasi mempunyai kondisi 0 (false) maka otomatis operasi akan menghasilkan nilai yang ada pada pilihan ke dua “nilaiDua”.
Ekspresi ? nilaiJikaTrue : nilaiJikaFalse;

Contoh program :

#include <iostream> 
#include <cstdlib>
using namespace std; 

int main()
{
     int umur = 0;
     cout<<"Masukan umur anda : ";
     cin>>umur;
     cout<<"Umur anda "<<(umur>17?">":"<")<<" 17 "<<endl;

     return 0;
     system("pause");
}

Contoh Program di atas akan menghasilkan program yang meminta anda untuk memasukan umur, dan akan dioperasi untuk menampilkan apa yang telah anda input.

Contoh Khasus :
Ada peraturan di sekolah bahwa, jika siswa masuk lebih dari jam 7 maka akan mendapatkan nilai C dan jika siswa berangkat awal, masuk kurang dari jam 7 maka akan mendapatkan nilai A.

Penyelesaian :

kedatangan<JAM_MASUK?'A':'C';

Program :

#include <iostream> 
using namespace std; 
int main ()
{
     const int JAM_MASUK=7;
     int kedatangan;
     char nilai;
     cout<<"Masukan Jam Kehadiran Siswa = ";
     cin>>kedatangan;
     nilai = kedatangan<JAM_MASUK?'A':'C';
     cout<<"Nilai Siswa = "<<nilai;

     return 0; 
}

 

Tambahan :
Compound assignment 

“Compound Assignment” jika diterjemahkan ke dalam bahasa indonsia adalah “Senyawa tugas”, tetapi di Indonesia kebanyakan orang menyebutnya dengan nama “Pemberi Nilai Aritmetika”. Operator ini berfungsi untuk memodifikasi nilai dari variabel yang dituju dengan sumber nilai secara langsung, memodifikasi dengan nilai dari variabel lain atau nilai dari variabel itu sendiri. Compound Assigment memiliki macam-macam operator, yaitu :

Tanda-tanda dari Operator Compound Assignment di atas semuanya hampir mirip seperti tanda pada beberapa operator lainya, hanya berbeda pada penambahan tanda “=” setelah tanda inti. Untuk masing-masing fungsinya sebenarnya masih sama seperti apa yang sudah dijelaskan pada artikel sebelumnya di sini hanya berbeda pada penulisanya yang lebih singkat, hal ini dapat menyingkat waktu dan dapat mempermudah programmer untuk melakukan operasi pada suatu data. Berikut arti dari penulisan beberapa operator di atas.

Contoh Penulisan

X += 2       // x = x + 2 //penulisan di bawah juga berlaku 
X *= Y * 3   // x = x * (y + 3)

Contoh Program :

#include <iostream> 
using namespace std; 

int main () 
{
     int x = 10, y = 2;
     cout<<(x += y)<<endl;

     x=10;
     cout<<(x -= y)<<endl;

     x=10;
     cout<<(x *= y)<<endl;

     x=10;
     cout<<(x /= y)<<endl;

     x=10;
     cout<<(x %= y)<<endl;

     x=10;
     cout<<(x >>= y)<<endl;

     x=10;
     cout<<(x <<= y)<<endl;

     x=10;
     cout<<(x &= y)<<endl;

     x=10;
     cout<<(x ^= y)<<endl;

     x=10;
     cout<<(x |= y)<<endl;

     return 0; 
}

 

Contoh program :

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int A, B=3;

    A = B;
    A+=2; // sama dengan a=a+2

    cout << A;

    return 0;
    system("pause");
}

hasilnya :

 


 

 

Demikianlah operator-operator pada bahasa pemrograman c++ yang perlu kita ketahui.

Daftar Pustaka :

http://www.robotics-university.com

https://www.belajarcpp.com

Pemograman C++ Edisi Revisi “Mudah dan Cepat Menjadi Master C++”, Budi Raharjo, Informatika, 2012

Exit mobile version