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 :

OperatorDescriptionExample
+Adds two operandsA + B = 30
Subtracts second operand from the firstA – B = -10
*Multiplies both operandsA * B = 200
/Divides numerator by de-numeratorB / A = 2
%Modulus Operator and remainder of after an integer divisionB % A = 0
++Increment operator increases integer value by oneA++ = 11
Decrement operator decreases integer value by oneA– = 9

Relational Operators

Tabel berikut menunjukkan semua operator relasional yang didukung oleh C#. Asumsikan variabel A memiliki 10 dan variabel B memiliki 20, maka :

OperatorDescriptionExample
==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

OperatorDescriptionExample
&&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:

pqp & qp | qp ^ q
00000
01011
11110
10011

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 :

OperatorDescriptionExample
&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#

OperatorDescriptionExample
=Simple assignment operator, Menetapkan nilai dari operan sisi kanan ke operan sisi kiriC = 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 kiriC += A is equivalent to C = C + A
-=Subtract AND assignment operator, Ini mengurangi operan kanan dari operan kiri dan menetapkan hasilnya ke operan kiriC -= A is equivalent to C = C – A
*=Multiply AND assignment operator, Ini mengalikan operan kanan dengan operan kiri dan menetapkan hasilnya ke operan kiriC *= A is equivalent to C = C * A
/=Divide AND assignment operator, Ini membagi operan kiri dengan operan kanan dan menetapkan hasilnya ke operan kiriC /= A is equivalent to C = C / A
%=Modulus AND assignment operator, Dibutuhkan modulus menggunakan dua operan dan menetapkan hasilnya ke operan kiriC %= A is equivalent to C = C % A
<<=Left shift AND assignment operatorC <<= 2 is same as C = C << 2
>>=Right shift AND assignment operatorC >>= 2 is same as C = C >> 2
&=Bitwise AND assignment operatorC &= 2 is same as C = C & 2
^=bitwise exclusive OR and assignment operatorC ^= 2 is same as C = C ^ 2
|=bitwise inclusive OR and assignment operatorC |= 2 is same as C = C | 2

Miscellaneous Operators

Ada beberapa operator penting lainnya termasuk sizeof, typeof dan ? : didukung oleh C#.

OperatorDescriptionExample
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 ExpressionIf Condition is true ? Then value X : Otherwise value Y
isMenentukan apakah suatu objek berjenis tertentu.If( Ford is Car) // checks if Ford is an object of the Car class.
asMelakukan 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.

CategoryOperatorAssociativity
Postfix() [] -> . ++ – –Left to right
Unary+ – ! ~ ++ – – (type)* & sizeofRight 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

Leave a Reply

Your email address will not be published. Required fields are marked *