C# – Operators
Operator adalah simbol yang memberi tahu kompiler untuk melakukan manipulasi matematika atau logika tertentu. C # memiliki banyak set operator built-in dan menyediakan jenis operator berikut :
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Misc Operators
Tutorial ini menjelaskan aritmatika, relasional, logika, bitwise, penugasan, dan operator lainnya satu per satu.
Arithmetic Operators
Tabel berikut menunjukkan semua operator aritmatika yang didukung oleh C#. Asumsikan variabel A memiliki 10 dan variabel B memiliki 20 maka :
Operator | Description | Example |
---|---|---|
+ | Adds two operands | A + B = 30 |
– | Subtracts second operand from the first | A – B = -10 |
* | Multiplies both operands | A * B = 200 |
/ | Divides numerator by de-numerator | B / A = 2 |
% | Modulus Operator and remainder of after an integer division | B % A = 0 |
++ | Increment operator increases integer value by one | A++ = 11 |
— | Decrement operator decreases integer value by one | A– = 9 |
Relational Operators
Tabel berikut menunjukkan semua operator relasional yang didukung oleh C#. Asumsikan variabel A memiliki 10 dan variabel B memiliki 20, maka :
Operator | Description | Example |
---|---|---|
== | Memeriksa apakah nilai dari dua operan sama atau tidak, jika ya maka kondisinya menjadi true (benar). | (A == B) is not true. |
!= | Memeriksa apakah nilai dari dua operan sama atau tidak, jika nilai tidak sama maka kondisi menjadi true (benar). | (A != B) is true. |
> | Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan, jika ya maka kondisi menjadi true (benar). | (A > B) is not true. |
< | Memeriksa apakah nilai operan kiri kurang dari nilai operan kanan, jika ya maka kondisinya menjadi true (benar). | (A < B) is true. |
>= | Memeriksa apakah nilai operan kiri lebih besar dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi true (benar). | (A >= B) is not true. |
<= | Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi true (benar). | (A <= B) is true. |
Logical Operators
Tabel berikut menunjukkan semua operator logika yang didukung oleh C #. Asumsikan variabel A memegang nilai Boolean benar dan variabel B memegang nilai Boolean salah
Operator | Description | Example |
---|---|---|
&& | Disebut Logical AND operator. Jika kedua operan bukan nol maka kondisi menjadi benar (true). | (A && B) is false. |
|| | Disebut Logical OR Operator. Jika salah satu dari dua operan bukan nol maka kondisi menjadi benar (true). | (A || B) is true. |
! | Disebut Logical NOT Operator. Gunakan untuk membalikkan keadaan logis operannya. Jika kondisi benar (true) maka operator NOT akan membuat salah (false). | !(A && B) is true. |
Bitwise Operators
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 jika A = 60; dan B = 13; maka dalam format binernya adalah sebagai berikut :
A = 0011 1100
B = 0000 1101
——————-
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
Operator Bitwise yang didukung oleh C # tercantum dalam tabel berikut. Asumsikan variabel A memiliki 60 dan variabel B memiliki 13, maka :
Operator | Description | Example |
---|---|---|
& | Biner AND Operator menyalin sedikit ke hasil jika ada di kedua operan. | (A & B) = 12, which is 0000 1100 |
| | Biner OR Operator menyalin sedikit jika ada di salah satu operan. | (A | B) = 61, which is 0011 1101 |
^ | Operator Biner XOR menyalin bit jika diatur dalam satu operan tetapi tidak keduanya. | (A ^ B) = 49, which is 0011 0001 |
~ | Operator Pelengkap Binary Ones adalah unary dan memiliki efek bit ‘membalik’. | (~A ) = -61, which is 1100 0011 in 2’s complement due to a signed binary number. |
<< | Operator Binary Left Shift. Nilai operan kiri dipindahkan ke kiri dengan jumlah bit yang ditentukan oleh operan kanan. | A << 2 = 240, which is 1111 0000 |
>> | Binary Right Shift Operator. Nilai operan kiri dipindahkan ke kanan dengan jumlah bit yang ditentukan oleh operan kanan. | A >> 2 = 15, which is 0000 1111 |
Assignment Operators
Ada operator penugasan berikut yang didukung oleh C#
Operator | Description | Example |
---|---|---|
= | Simple assignment operator, Menetapkan nilai dari operan sisi kanan ke operan sisi kiri | C = A + B assigns value of A + B into C |
+= | Add AND assignment operator, Ini menambahkan operan kanan ke operan kiri dan menetapkan hasilnya ke operan kiri | C += A is equivalent to C = C + A |
-= | Subtract AND assignment operator, Ini mengurangi operan kanan dari operan kiri dan menetapkan hasilnya ke operan kiri | C -= A is equivalent to C = C – A |
*= | Multiply AND assignment operator, Ini mengalikan operan kanan dengan operan kiri dan menetapkan hasilnya ke operan kiri | C *= A is equivalent to C = C * A |
/= | Divide AND assignment operator, Ini membagi operan kiri dengan operan kanan dan menetapkan hasilnya ke operan kiri | C /= A is equivalent to C = C / A |
%= | Modulus AND assignment operator, Dibutuhkan modulus menggunakan dua operan dan menetapkan hasilnya ke operan kiri | C %= A is equivalent to C = C % A |
<<= | Left shift AND assignment operator | C <<= 2 is same as C = C << 2 |
>>= | Right shift AND assignment operator | C >>= 2 is same as C = C >> 2 |
&= | Bitwise AND assignment operator | C &= 2 is same as C = C & 2 |
^= | bitwise exclusive OR and assignment operator | C ^= 2 is same as C = C ^ 2 |
|= | bitwise inclusive OR and assignment operator | C |= 2 is same as C = C | 2 |
Miscellaneous Operators
Ada beberapa operator penting lainnya termasuk sizeof, typeof dan ? : didukung oleh C#.
Operator | Description | Example |
---|---|---|
sizeof() | Mengembalikan ukuran tipe data. | sizeof(int), returns 4. |
typeof() | Mengembalikan tipe class. | typeof(StreamReader); |
& | Menampilkan alamat variabel. | &a; returns actual address of the variable. |
* | Pointer to a variable. | *a; creates pointer named ‘a’ to a variable. |
? : | Conditional Expression | If Condition is true ? Then value X : Otherwise value Y |
is | Menentukan apakah suatu objek berjenis tertentu. | If( Ford is Car) // checks if Ford is an object of the Car class. |
as | Melakukan cast tanpa pengecualian jika cast gagal. | Object obj = new StringReader(“Hello”);StringReader r = obj as StringReader; |
Operator Precedence in C#
Prioritas operator menentukan pengelompokan istilah dalam ekspresi. Ini mempengaruhi evaluasi ekspresi. Operator tertentu memiliki prioritas yang lebih tinggi dari yang lain; misalnya , multiplication operator memiliki prioritas yang lebih tinggi dari pada addition operator.
Misalnya x = 7 + 3 * 2; di sini, x ditetapkan 13, bukan 20 karena operator * memiliki prioritas lebih tinggi daripada +, jadi evaluasi pertama dilakukan untuk 3 * 2 dan kemudian 7 ditambahkan ke dalamnya.
Di sini, operator dengan prioritas tertinggi muncul di bagian atas tabel, operator dengan prioritas terendah muncul di bagian bawah. Dalam ekspresi, operator dengan prioritas lebih tinggi dievaluasi terlebih dahulu.
Category | Operator | Associativity |
---|---|---|
Postfix | () [] -> . ++ – – | Left to right |
Unary | + – ! ~ ++ – – (type)* & sizeof | Right to left |
Multiplicative | * / % | Left to right |
Additive | + – | Left to right |
Shift | << >> | Left to right |
Relational | < <= > >= | Left to right |
Equality | == != | Left to right |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | | | Left to right |
Logical AND | && | Left to right |
Logical OR | || | Left to right |
Conditional | ?: | Right to left |
Assignment | = += -= *= /= %=>>= <<= &= ^= |= | Right to left |
Comma | , | Left to right |