Operator dalam pemrograman bahasa C adalah simbol yang digunakan untuk melakukan operasi tertentu pada suatu nilai dan variabel. Misalnya, jika kita ingin membagi nilai dari variabel a dan b, maka kita bisa menggunakan operator pembagian (/).
Ada enam macam operator dalam pemrograman bahasa C, yaitu :
- Operator Artimatika;
- Operator Penugasan;
- Operator Pembanding;
- Operator Logika;
- Operator Bitwise;
- dan Operator Lain-lain.
Mari kita bahas satu persatu..
Operator Artimatika Pada Bahasa C
Operator ini sama seperti yang ada di matematika pada umunya, dimana operator ini berfungsi untuk melakukan operasi aritmatika seperti penjumlahan, pengurangan, pembagian, perkalian, dan lain-lain.
Nama Operator | Simbol |
Penjumlahan | + |
Pengurangan | – |
Perkalian | * |
Pembagian | / |
Sisa Bagi | % |
Bagaimana cara menggunakan operator artimatika pada bahasa C ?
Mari kita praktikkan pada contoh program berikut :
#include <stdio.h>
void main(){
int x, y;
printf("Masukkan nilai x: ");
scanf("%i", &x);
printf("Masukkan nilai y: ");
scanf("%i", &y);
printf("Hasil dari x + y : %i\n", x + y);
printf("Hasil dari x - y : %i\n", x - y);
printf("Hasil dari x * y : %i\n", x * y);
printf("Hasil dari x / y : %i\n", x / y);
printf("Hasil dari x % y : %i\n", x % y);
}
Hasilnya :
Kenapa hasil dari 24 dibagi 15 = 1 ? bukannya hasilnya 1,6
Hal ini karena kode program diatas menggunakan tipe data integer yang mana integer ini merupakan tipe data dari bentuk bilangan bulat.
Oleh sebab itu kita akan menambahkan (float) pada variabel x dan y agar hasil pembagian dari tipe data integer akan tidak dibulatkan.
Contoh :
#include <stdio.h>
void main(){
float x, y;
printf("Masukkan nilai x: ");
scanf("%i", &x);
printf("Masukkan nilai y: ");
scanf("%i", &y);
printf("Hasil dari x / y : %f\n", x / y);
}
Hasilnya :
Operator Penugasan Pada Bahasa C
Assignment Operator atau Operator penugasan merupakan operator untuk memberikan tugas pada untuk mengisi nilai pada variabel. Operator ini terdiri dari :
Nama Operator | Sombol |
Pengisian Nilai | = |
Pengisian dan Penambahan | += |
Pengisian dan Pengurangan | -= |
Pengisian dan Perkalian | *= |
Pengisian dan Pembagian | /= |
Pengisian dan Sisa bagi | %= |
Pengisian dan shift left | <<= |
Pengisian dan shift right | >>= |
Pengisian dan bitwise AND | &= |
Pengisian dan bitwise OR | |= |
Pengisian dan bitwise XOR | ^= |
Contoh program operator penugasan :
#include <stdio.h>
void main(){
int x, y;
// pengisian nilai dengan operator =
x = 2;
y = 8;
// pengisian dan penambahan sekaligus
y += x; // ini sama seperti y = y + x
printf("Hasil y += x : %d\n", y);
// pengisian dan pengurangan sekaligus
y -= x; // ini sama seperti y = y - x
printf("Hasil y -= x : %d\n", y);
// pengisian dan perkalian sekaligus
y *= x; // ini sama seperti y = y * x
printf("Hasil y *= x : %d\n", y);
// pengisian dan pembagian sekaligus
y /= x; // ini sama seperti y = y / x
printf("Hasil y /= x : %d\n", y);
// pengisian dan sisa bagi
y %= x; // ini sama seperti y = y % x
printf("Hasil y %= x : %d\n", y);
}
Keterangan :
Pada kode program diatas, kita mengisi ulang variabel y dengan operator penugasan.
Sebagai contoh, operasi:
”y += z” ini sama seperti operasi: ”y = y + z”
Yang berarti kita akan mengisi nilai untuk y dengan nilai y ditambah nilai z.
Hasilnya :
Operator Pembanding Pada Bahasa C
Operator pembanding atau yang disebut juga dengan operator relasi adalah operator untuk memabndingkan dua buah nilai. Adapun nilai yang dihasilkan dari operasi ini berupa true atau 1 dan false 0.
Macam-macam dari operator pembanding yaitu :
Nama Operator | Simbol |
Lebih Besar | > |
Lebih Kecil | < |
Sama Dengan | == |
Tidak Sama dengan | != |
Lebih Besar Sama dengan | >= |
Lebih Kecil Sama dengan | <= |
Contoh program :
#include <stdio.h>
void main(){
int a = 15;
int b = 5;
printf("a = %d\n", a);
printf("b = %d\n", b);
// operator pembanding
printf("a > b = %d\n", a > b);
printf("a < b = %d\n", a < b);
printf("a >= b = %d\n", a >= b);
printf("a <= b = %d\n", a <= b);
printf("a == b = %d\n", a == b);
printf("a != b = %d\n", a != b);
}
Hasilnya :
Operator Logika
Operator Logika digunakan untuk membuat operasi logika terhadapa dua kondisi yaitu 1 dan 0. Pada bahasa C terdapat 3 operator logika, yaitu :
Operator | Nama | Penjelasan | Contoh |
&& | And | Akan menghasilkan 1 jika kedua operand 1 | 1 && 0, hasilnya: 0 |
|| | Or | Akan menghasilkan 1 jika salah satu operand 1 | 1 || 0, hasilnya: 1 |
! | Not | Akan menghasilkan 1 jika operand 0 | !0, hasilnya: 1 |
operator OR menggunakan karakter pipe ” | “, bukan huruf L kecil.
Contoh Program :
#include <stdio.h>
void main(){
int a = 1; // true
int b = 0; // false
printf("a = %d\n", a);
printf("b = %d\n", b);
// logika AND
printf("a && b = %d\n", a && b);
// logika OR
printf("b || a = %d\n", b || a);
// logika NOT
printf("!b = %d\n", !b);
}
Hasilnya :
Operator Bitwise
Operator bitwise merupakan operator yang digunakan untuk operasi berdasarkan bit (bilangan biner) dari sebuah nilai. Biner merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1.
Apabila nilai awal yang digunakan bukan bilangan biner, maka akan dikonversi secara otomatis oleh compiler C menjadi bilangan biner.Misalnya 5 desimal = 0101 dalam bilangan biner.
Ada 6 jenis Operator bitwise, yaitu :
Operator | Nama |
& | AND |
| | OR |
^ | XOR |
~ | NOT |
<< | Left shift |
>> | Right shift |
Contoh program :
#include <stdio.h>
int main(void)
{
int a, b, hasil;
a = 11;
b = 4;
printf("=== Operator Bitwise === \n\n");
hasil = a & b;
printf("a & b: %d \n",hasil);
hasil = a | b;
printf("a | b: %d \n",hasil);
hasil = a ^ b;
printf("a ^ b: %d \n",hasil);
hasil = ~a;
printf("~a: %d \n",hasil);
hasil = a >> 1;
printf("a >> 1: %d \n",hasil);
hasil = b << 2;
printf("b << 2: %d \n",hasil);
return 0;
}
Keterangan :
Pada program diatas, ada 2 variabel yaitu : ”a dengan nilai 31” dan ”b dengan nilai 20”. Jika di konversi ke dalam bentuk biner, keduanya berisi angka berikut:
a = 31 (desimal) = 11111 (biner)
b = 20 (desimal) = 10100 (biner)
Di baris 12 saya melakukan operasi & (AND) terhadap kedua variabel. Operasi bitwise “and” ini akan memproses bit per bit dari kedua variabel, jika kedua bit sama-sama 1, maka hasilnya juga 1, selain kondisi tersebut, nilai akhirnya adalah 0. Berikut perhitungan bitwise “and”:
a = 11111
b = 10100
——–
a & b = 10100 = 20 (desimal)
Dan dari hasil printf, terlihat bahwa hasilnya adalah 20 (dalam bentuk desimal).
Hasilnya :
Operator Lainnya
Selain dari kelima operator yang sudah kita bahas di atas, pada bahasa C juga terdapat beberapa operator lainnya, yaitu :
Nama Operator | Simbol | Keterangan |
Alamat memori | & | untuk mengambil alamat memori |
Pointer | * | untuk membuat pointer |
Ternary | ? : | untuk membuat kondisi |
Increment | ++ | untuk menambah 1 |
Decrement | — | untuk mengurangi |
Contoh program :
#include <stdio.h>
void main(){
int b = 10;
// increment b
b++;
printf("=== Operator Lainnya === \n\n");
// ambil alamat memori
printf("Alamat memori variabel b adalah %x\n", &b);
// operator ternary dari variabel b
printf("b > 1 adalah %s\n", b > 1 ? "benar": "salah");
// operator increment dan decrement variabel b
printf("b++ = %d\n", b);
++b; // increment b
printf("++b = %d\n", b);
b--; // decrement b
printf("b-- = %d\n", b);
--b; // decrement b
printf("--b = %d\n", b);
}
Hasilnya :
Begitulah pembahasan mengenai macam macam operator bahasa C. Untuk selanjutnya adalah : Blok Perulangan pada C