Operator dalam Bahasa C

Pada artikel sebelumnya, operator merupakan bagian dari bahasa C. Operator berguna untuk mengolah data. Sebelum itu, ada dua istilah yaitu operand dan operator. Operand adalah nilai, sedangkan operator adalah instruksinya. Misalnya 10 + 2, 10 dan 2 adalah operand, sedangkan + adalah operator.

Daftar isi

Berdasarkan Jumlah Operand

Ada 3 jenis operator yang dibedakan berdasarkan jumlah operandnya, yaitu unary, binary dan ternary.

Unary

Unary adalah operator yang hanya bekerja pada 1 operand. Dalam bahasa C, contoh unary adalah ++ (increment) dan — (decrement). Operator increment akan menambah nilai operandnya sebanyak 1, sedangkan decrement akan mengurangi 1.

m = 3;
n = 5;
m++; //m sekarang bernilai 4
n--; //n sekarang bernilai 4

Selain itu, ada juga operator akar pada matematika, misalnya sqrt(5), sqrt(8) dll.

Binary

Operator binary bekerja untuk dua nilai/variabel. Misalkan pada contoh tadi, 10 + 2. (+) merupakan operator binary, begitu juga operator aritmatika lainnya.

Ternary

Dalam bahasa C, ada operator “?:” yang dan penggunaannnya seperti (a > 75)?100:50;

Berdasarkan Jenis/Kegunaannya

Operator Assignment

Sebelum sampai sini, tentu kalian sudah pernah melihat penggunaannya. Operator Assignment adalah operator yang berguna untuk memberikan nilai ke suatu variabel (wadah). Dalam bahasa C, simbol assignment adalah =.

int x,y;
x = 4;
y = 5;

Operator Aritmatika

Operator aritmatika yang umum dikenal adalah penjumlahan (+), pengurangan (-), perkalian (x) dan pembagian (/). Selain 4 operator tersebut, ada lagi operator modulo (%) yang memberikan sisa bagi. 10 % 3 = 1 karena 10/3 akan bersisa 1.

Operator Increment dan Decrement

Operator increment dan decrement adalah operator unary. Ada dua cara untuk menggunakan kedua operator ini, yaitu sebelum dan sesudah operand. Kedua cara akan menambah/mengurangi operand dengan 1, namun akan berbeda jika ada operator assignment atau jika mencetak hasil.

int x,y;
x = 5;
y = 5;
a = ++x; //a bernilai 6
b = y++; //b bernilai 5
//x dan y bernilai 6

Hal itu juga berlaku pada decrement. Pada contoh, program akan menambah x dengan 1 terlebih dahulu sebelum memberikan hasilnya pada a. Sedangkan pada b, program akan memberikan nilai y sebelum menambahkannya dengan 1. Kira-kira, apa output dari potongan kode berikut?

int x = 7;
printf("%d %d",x++, ++x);

Operator Relasional

Operator ini berguna untuk membandingkan 2 buah nilai. Jika benar akan menghasilkan nilai true (1) dan jika salah akan menghasilkan false (0).

OperatorKeteranganContoh
== (sama dengan)Untuk memeriksa apakah kedua operand bernilai sama7 == 5 (FALSE)
9 == 9
(TRUE)
!= (tidak sama dengan)Untuk memeriksa apakah kedua nilai tidak bernilai sama7 != 5 (TRUE)
9 != 9 (FALSE)
> (lebih besar dari)Memeriksa apakah operand kiri lebih besar daripada operand kanan7 > 5 (TRUE)
9 > 9 (FALSE)
7 > 9 (FALSE)
< (lebih kecil dari)Memeriksa apakah operand kiri lebih kecil dari operand kanan7 < 5 (FALSE)
9 < 9 (FALSE)
7 < 9 (TRUE)
>= (lebih besar/sama dengan)Membandingkan apakah operand kiri lebih besar atau sama dengan operand kanan7 >= 5 (TRUE)
9 >= 9 (TRUE)
7 >= 9 (FALSE)
<= (lebih kecil/sama dengan)Membandingkan apakah operand kiri lebih kecil atau sama dengan operand kanan7 <= 5 (FALSE)
9 <= 9 (TRUE)
7 <= 9 (TRUE)

Operator Logika/Boolean

Operator ini untuk menghasilkan nilai boolean true atau false.

SimbolNamaKeteranganContoh
&&AndOperator yang akan menghasilkan true jika kedua operand bernilai true.1 && 1 = 1
1 && 0 = 0
||OrOperator yang akan menghasilkan true jika ada minimal 1 operand bernilai 1.0 || 0 = 0
0 || 1 = 1
!NotAkan menghasilkan kebalikannya.!0 = 1
!1 = 0

Operator Bitwise

Berfungsi untuk melakukan operasi pada dua operan dengan menggunakan sistem biner. Jika belum tahu bagaimana mengubah sistem bilangan, bisa buka Cara Konversi Bilangan Biner, Oktal, Desimal dan Heksadesimal. Sebenarnya, nilai yang masuk (desimal) akan otomatis menjadi biner setelah compile.

Ada 6 jenis operator bitwise dalam bahasa C.

  • AND (&) akan mengevaluasi bit dari dua operand. Jika posisi bit yang sama pada keduanya adalah 1, maka operasi bernilai 1.
  • OR (|) akan menghasilkan 1 jika minimal satu bit bernilai 1 pada posisi yang sama.
  • XOR akan menghasilkan 1 jika keduanya berbeda (0 dan 1 atau 1 dan 0).
  • COMPLEMENT (~) akan membalikkan semua nilai bit.
  • SHIFT LEFT (<<) akan menggeser bit ke kiri sebanyak n (operand kedua).
  • SHIFT RIGHT (>>) akan menggeser bit ke kanan sebanyak operand kedua.
OperatorSimbolContohContoh (biner)Hasil
AND&12 & 61100 & 01104 (0100)
OR|13 | 71101 | 011115 (1111)
XOR^12 ^ 51100 ^ 01019 (1001)
COMPLEMENT~~11~10114 (0100)
SHIFT LEFT<<10 << 21010 << (2)40 (101000)
SHIFT RIGHT>>10 >> 21010 >> (2)2 (10)

Untuk shift left, anggap bahwa operand pertama dikalikan dengan 2n. Sedangkan shift right kebalikannya (pembagian).

Assignment + Operator Lain

Seperti namanya, kita bisa saja menggabungkan operator assignment dengan operator lainnya. Operand pertama sebagai wadah untuk nilainya. Misal kita akan mengubah nilai a menjadi a + b, maka cukup tulis a += b;.

OperatorPenggunaanEkuivalen dengan
+=a += ba = a + b
-=a -= ba = a – b
*=a *= ba = a * b
/=a /= ba = a/b
%=a %= ba = a % b
&=a &= ba = a & b
|=a |= ba = a | b
^=a ^= ba = a ^ b
<<=a <<= ba = a << b
>>=a >>= ba = a>> b

Operator Lain

Selain operator yang disebutkan sebelumnya, ada operator lain yang tidak termasuk kelompok-kelompok tersebut.

Operator sizeof()

sizeof() berfungsi untuk mengetahui alokasi memori yang operand pakai.

int a[100];
sizeof(a);
sizeof(int);

Operator Address (&)

Seperti namanya, operator ini akan mengembalikan alamat memori dari sebuah operand. Meskipun sama dengan bitwise and, keduanya akan berbeda jika penggunaannya tepat.

int a;
scanf("%d", &a);
proses(&a);

Pada contoh, fungsi proses akan mengambil alamat dari a sebagai parameter, bukan nilai dari a. Lebih lengkapnya jika sudah membahas fungsi/pointer.

Pointer (*)

Ini adalah kebalikan dari address. Jika address mengambil alamat suatu operand, maka pointer akan menunjuk nilai dari sebuah alamat. Lengkapnya  akan dijelaskan pada fungsi/pointer.

Share Now:

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!