Panduan Lengkap Operator C: Tipe, Fungsi & Contoh
Sebuah operator adalah simbol yang memberi tahu compiler untuk melakukan fungsi matematika atau logika tertentu. Bahasa C kaya akan operator bawaan dan menyediakan jenis operator berikut −
- Operator Aritmatika
- Operator Relasional
- Operator Logika
- Operator Bitwise
- Operator Penugasan
- Operator Lainnya
Kami, dalam bab ini, akan melihat cara kerja setiap operator.
Operator Aritmatika
Tabel berikut menunjukkan semua operator aritmatika yang didukung oleh bahasa C. Asumsikan variabel A bernilai 10 dan variabel B bernilai 20 maka −
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| + | Menambahkan dua operand. | A + B = 30 |
| - | Mengurangi operand kedua dari yang pertama. | A - B = -10 |
| * | Mengalikan kedua operand. | A * B = 200 |
| / | Membagi pembilang dengan penyebut. | B / A = 2 |
| % | Operator Modulus dan sisa setelah pembagian integer. | B % A = 0 |
| ++ | Operator increment meningkatkan nilai integer sebesar satu. | A++ = 11 |
| -- | Operator decrement mengurangi nilai integer sebesar satu. | A-- = 9 |
Operator Relasional
Tabel berikut menunjukkan semua operator relasional yang didukung oleh C. Asumsikan variabel A bernilai 10 dan variabel B bernilai 20 maka −
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| == | Memeriksa apakah nilai dua operand sama atau tidak. Jika ya, kondisi menjadi benar. | (A == B) tidak benar. |
| != | Memeriksa apakah nilai dua operand sama atau tidak. Jika nilai tidak sama, kondisi menjadi benar. | (A != B) benar. |
| > | Memeriksa apakah nilai operand kiri lebih besar dari nilai operand kanan. Jika ya, kondisi menjadi benar. | (A > B) tidak benar. |
| < | Memeriksa apakah nilai operand kiri lebih kecil dari nilai operand kanan. Jika ya, kondisi menjadi benar. | (A < B) benar. |
| >= | Memeriksa apakah nilai operand kiri lebih besar atau sama dengan nilai operand kanan. Jika ya, kondisi menjadi benar. | (A >= B) tidak benar. |
| <= | Memeriksa apakah nilai operand kiri lebih kecil atau sama dengan nilai operand kanan. Jika ya, kondisi menjadi benar. | (A <= B) benar. |
Operator Logika
Tabel berikut menunjukkan semua operator logika yang didukung oleh bahasa C. Asumsikan variabel A bernilai 1 dan variabel B bernilai 0, maka −
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| && | Disebut operator Logical AND. Jika kedua operand non-nol, kondisi menjadi benar. | (A && B) salah. |
| || | Disebut operator Logical OR. Jika salah satu dari dua operand non-nol, kondisi menjadi benar. | (A || B) benar. |
| ! | Disebut operator Logical NOT. Digunakan untuk membalikkan status logika operandnya. Jika kondisi benar, operator Logical NOT akan membuatnya salah. | !(A && B) benar. |
Operator Bitwise
Operator bitwise bekerja pada bit dan melakukan operasi bit demi bit. Tabel kebenaran untuk &, |, dan ^ adalah sebagai berikut −
| p | q | p & q | p | q | p ^ q |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Asumsikan A = 60 dan B = 13 dalam format biner, mereka akan sebagai berikut −
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
Tabel berikut mencantumkan operator bitwise yang didukung oleh C. Asumsikan variabel 'A' bernilai 60 dan variabel 'B' bernilai 13, maka −
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| & | Binary AND Operator menyalin bit ke hasil jika ada di kedua operand. | (A & B) = 12, yaitu, 0000 1100 |
| | | Binary OR Operator menyalin bit jika ada di salah satu operand. | (A | B) = 61, yaitu, 0011 1101 |
| ^ | Binary XOR Operator menyalin bit jika diatur di satu operand tetapi tidak keduanya. | (A ^ B) = 49, yaitu, 0011 0001 |
| ~ | Binary One's Complement Operator adalah unary dan memiliki efek 'membalikkan' bit. | (~A ) = ~(60), i.e,. -0111101 |
| << | Binary Left Shift Operator. Nilai operand kiri digeser ke kiri oleh jumlah bit yang ditentukan oleh operand kanan. | A << 2 = 240 i.e., 1111 0000 |
| >> | Binary Right Shift Operator. Nilai operand kiri digeser ke kanan oleh jumlah bit yang ditentukan oleh operand kanan. | A >> 2 = 15 i.e., 0000 1111 |
Operator Penugasan
Tabel berikut mencantumkan operator penugasan yang didukung oleh bahasa C −
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| = | Operator penugasan sederhana. Menugaskan nilai dari operand sisi kanan ke operand sisi kiri | C = A + B akan menugaskan nilai dari A + B ke C |
| += | Operator Add AND penugasan. Menambahkan operand kanan ke operand kiri dan menugaskan hasilnya ke operand kiri. | C += A setara dengan C = C + A |
| -= | Operator Subtract AND penugasan. Mengurangi operand kanan dari operand kiri dan menugaskan hasilnya ke operand kiri. | C -= A setara dengan C = C - A |
| *= | Operator Multiply AND penugasan. Mengalikan operand kanan dengan operand kiri dan menugaskan hasilnya ke operand kiri. | C *= A setara dengan C = C * A |
| /= | Operator Divide AND penugasan. Membagi operand kiri dengan operand kanan dan menugaskan hasilnya ke operand kiri. | C /= A setara dengan C = C / A |
| %= | Operator Modulus AND penugasan. Mengambil modulus menggunakan dua operand dan menugaskan hasilnya ke operand kiri. | C %= A setara dengan C = C % A |
| <<= | Operator Left shift AND penugasan. | C <<= 2 sama dengan C = C << 2 |
| >>= | Operator Right shift AND penugasan. | C >>= 2 sama dengan C = C >> 2 |
| &= | Operator Bitwise AND penugasan. | C &= 2 sama dengan C = C & 2 |
| ^= | Operator Bitwise exclusive OR dan penugasan. | C ^= 2 sama dengan C = C ^ 2 |
| |= | Operator Bitwise inclusive OR dan penugasan. | C |= 2 sama dengan C = C | 2 |
Operator Lainnya ↦ sizeof & ternary
Selain operator yang dibahas di atas, ada beberapa operator penting lainnya termasuk sizeof dan ? : yang didukung oleh Bahasa C.
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| sizeof() | Mengembalikan ukuran variabel. | sizeof(a), di mana a adalah integer, akan mengembalikan 4. |
| & | Mengembalikan alamat variabel. | &a; mengembalikan alamat sebenarnya dari variabel. |
| * | Pointer ke variabel. | *a; |
| ? : | Conditional Expression. | Jika Kondisi benar ? maka nilai X : sebaliknya nilai Y |
Prioritas Operator dalam C
Prioritas operator menentukan pengelompokan istilah dalam ekspresi dan memutuskan bagaimana ekspresi dievaluasi. Beberapa operator memiliki prioritas lebih tinggi dari yang lain; misalnya, operator perkalian memiliki prioritas lebih tinggi dari operator penjumlahan.
Misalnya, x = 7 + 3 * 2; di sini, x ditetapkan 13, bukan 20 karena operator * memiliki prioritas lebih tinggi dari +, jadi pertama-tama dikalikan dengan 3*2 dan kemudian ditambahkan ke 7.
Di sini, operator dengan prioritas tertinggi muncul di bagian atas tabel, yang terendah di bagian bawah. Dalam ekspresi, operator dengan prioritas lebih tinggi akan dievaluasi terlebih dahulu.
Tampilkan Contoh
| Kategori | Operator | Asosiatifitas |
| Postfix | () [] -> . ++ - - | Kiri ke kanan |
| Unary | + - ! ~ ++ - - (type)* & sizeof | Kanan ke kiri |
| Multiplicative | * / % | Kiri ke kanan |
| Additive | + - | Kiri ke kanan |
| Shift | << >> | Kiri ke kanan |
| Relational | < <= > >= | Kiri ke kanan |
| Equality | == != | Kiri ke kanan |
| Bitwise AND | & | Kiri ke kanan |
| Bitwise XOR | ^ | Kiri ke kanan |
| Bitwise OR | | | Kiri ke kanan |
| Logical AND | && | Kiri ke kanan |
| Logical OR | || | Kiri ke kanan |
| Conditional | ?: | Kanan ke kiri |
| Assignment | = += -= *= /= %=>>= <<= &= ^= |= | Kanan ke kiri |
| Comma | , | Kiri ke kanan |