author Ahmad Muhardian

Belajar C#: Mengenal Operator Dasar pada C#


Tutorial C# untuk Pemula

Setelah kita belajar tentang variabel dan tipe data..

..berikutnya kita akan belajar tentang operator.

Variabel hanyalah tempat kita menyimpan data. Lalu untuk memproses data, kita membutuhkan bantuan operator.

Apa itu operator?

Apa saja operator yang ada di C#?

Mari kita bahas..

Apa itu Operator?

Operator adalah sebuah simbol…

Simbol yang digunakan untuk melakukan operasi tertentu.

Misalnya:

Kita ingin menjumlahkan nilai dari variabel x dan y, maka kita bisa menggunakan operator penjumlahan (+).

x + y

x dan y disebut operan, sedangkan + disebut operator.

operator operan

Paham kan?

Nah, berdasarkan banyaknya operan.. operator dikelompokkan menjadi tiga macam.

Yakni: Unary, Binary, dan Ternary.

unary binary ternary

Lalu berdasarkan operasi yang dilakukan, operator dibagi lagi menjadi beberapa bagian.

Ada yang namanya operator aritmatika, logika, perbandingan, pengisian, dan bitwise.

Jenis-Jenis Operator di C#

C# memiliki banyak jenis operator, namun yang akan kita bahas di sini adalah operator dasar yang sering digunakan.

Di antaranya:

  1. Operator Aritmatika
  2. Operator Penugasan (Assignment)
  3. Operator Perbandingan
  4. Operator Logika (Boolean Logical)
  5. Operator Bitwise
  6. dan Operator Kondisional (Ternary)

Mari kita bahas satu-persatu..

1. Operator Aritmatika

Operator aritmatika adalah operator untuk melakukan operasi aritmatika seperti kali, bagi, tambah, kurang.

Operator ini terdiri dari:

Nama OperatorSimbol
Penjumlahan+
Pengurangan-
Perkalian*
Pembagian/
Sisa Bagi%
Increment++
Decrement--

Biar lebih jelas, mari kita coba dalam contoh.

Pertama kita akan coba operator penjumlahan.

Silakan buat program baru bernama AritmatikaPenjumlahan.cs, dengan kode sebagai berikut:

using System;

class AritmatikaPenjumlahan 
{
  public static void Main (string[] args) 
  {
    int mangga, apel, hasil = 0;
    
    Console.Write("mangga = ");
    mangga = int.Parse(Console.ReadLine());
    Console.Write("appel = ");
    apel = int.Parse(Console.ReadLine());

    // operasi penjumlahan dengan operator +
    hasil = mangga + apel;

    Console.WriteLine ($"Hasil mangga + appel = {hasil}");
  }
}

Hasilnya:

contoh operator penjumlahan

Pada contoh ini, kita memberikan input untuk variabel mangga adalah 5 dan apel adalah 7, maka 5+7 hasilnya akan 12.

Gampang kan?

Operasi penjumlahan dapat kita lakukan untuk tipe data numerik atau angka. Jika kita melakukan penjumlahan pada tipe data string, maka yang terjadi adalah penggabungan.. bukan penjumlahan.

Contoh:

string nama = "Petani" + "Kode"

Maka variabel nama akan berisi PetaniKode.

Paham kan..?

Nah, berikutnya.. coba juga untuk menggunakan operator yang lainnya.

Mari kita coba untuk pengurangan.

Buatlah program baru dengan nama AritmatikaPengurangan.cs, kemudian isi dengan kode berikut:

using System;

class AritmatikaPengurangan 
{
  public static void Main (string[] args) 
  {
    int mangga, apel, hasil = 0;
    
    Console.Write("mangga = ");
    mangga = int.Parse(Console.ReadLine());
    Console.Write("appel = ");
    apel = int.Parse(Console.ReadLine());

    hasil = mangga - apel;

    Console.WriteLine ($"Hasil mangga - appel = {hasil}");
  }
}

Setelah itu, coba compile dan jalankan..

Maka hasilnya:

contoh pengurangan

Wohoo.. gampang!

Oh iya, selain pengurangan.. tanda - juga berfungsi sebagai tanda minus.

Cara penggunaannya sama seperti pada matematika.

Contoh:

int a = -10;
int b = -(-6);

Oke..

Sekarang lanjut ke operator aritmatika berikutnya, yakni perkalian.

Buatlah program baru dengan nama AritmatikaPerkalian.cs, kemudian isi dengan kode berikut.

using System;

class AritmatikaPerkalian 
{
  public static void Main (string[] args) 
  {
    int mangga, apel, hasil = 0;
    
    Console.Write("mangga = ");
    mangga = int.Parse(Console.ReadLine());
    Console.Write("appel = ");
    apel = int.Parse(Console.ReadLine());

    hasil = mangga * apel;

    Console.WriteLine ($"Hasil mangga * appel = {hasil}");
  }
}

Setelah itu, compile dan jalankan.

Maka hasilnya:

contoh perkalian

Nah.. untuk perkalian di pemrograman C#, kita pakai simbol * (asterisk atau bintang).

Mengapa tidak pakai x?

x sendiri merupakan sebuah huruf, yang akan dianggap tipe data karakter.. bukan operator kali. Jadi di perkalian di bahasa pemrograman pakainya * bukan x.

Oke, berikutnya pembagian..

Buatlah program baru dengan nama AritmatikaPembagian.cs dengan kode sebagai berikut.

using System;

class AritmatikaPembagian 
{
  public static void Main (string[] args) 
  {
    int mangga, orang, hasil = 0;
    
    Console.Write("jumlah mangga = ");
    mangga = int.Parse(Console.ReadLine());
    Console.Write("jumlah orang = ");
    apel = int.Parse(Console.ReadLine());

    hasil = mangga / orang;

    Console.WriteLine ($"Hasil mangga / orang = {hasil}");
  }
}

Sama seperti perkalian, untuk pembagian.. kita menggunakan simbol / (slah atau garis miring). Bukan simbol bagi ➗ seperti pada kalkulator.

Oke.. Setelah itu, coba compile dan jalankan.

Maka hasilnya:

contoh pembagian

Loh kok 6!

Bukannya 6.66666?

Ini disebabkan karena kita menggunakan tipe data integer untuk variabel mangga dan orang.

Coba kita ubah jadi float:

using System;

class AritmatikaPembagian 
{
  public static void Main (string[] args) 
  {
    float mangga, orang, hasil = 0.0f;
    
    Console.Write("jumlah mangga = ");
    mangga = float.Parse(Console.ReadLine());
    Console.Write("jumlah orang = ");
    orang = float.Parse(Console.ReadLine());

    hasil = mangga / orang;

    Console.WriteLine ($"Hasil mangga / orang = {hasil}");
  }
}

Hasilnya:

contoh pembagian float

Nah, berikutnya kita akan coba operator sisa bagi..

Operator ini akan menghasilkan sisa dari hasil pembagian, misalnya 10 bagi 3 maka sisanya 1.

Biar lebih jelas, langsung saja kita coba dalam program..

Buatlah program baru dengan nama AritmatikaSisabagi.cs dengan kode sebagai berikut:

using System;

class AritmatikaPembagian 
{
  public static void Main (string[] args) 
  {
    int mangga, orang, hasil = 0;
    
    Console.Write("jumlah mangga = ");
    mangga = int.Parse(Console.ReadLine());
    Console.Write("jumlah orang = ");
    orang = int.Parse(Console.ReadLine());

    hasil = mangga % orang;

    Console.WriteLine ($"Hasil mangga % orang = {hasil}");
  }
}

Setelah itu, compile dan jalankan..

Maka hasilnya:

contoh sisabagi

Mangganya ada 20, lalu dibagi dengan 3 orang.. maka sisa mangga yang gak bisa dibagi tinggal 2.

Gampang kan..

Nah, terakhir kita akan coba operator Increment dan Decrement.

Increment adalah penambahan nilai +1 sedangkan Decrement adalah pengurangan nilai -1.

Biasanya, kita melakukannya seperti ini:

int mangga = 2;
mangga = mangga + 1; // increment

Nah, dengan operator Increment/Decrement.. kita bisa buat lebih singkat.

int mangga = 2;
mangga++; // increment

Mari kita coba contohnya..

Buatlah program baru dengan nama IncrementDecrement.cs, kemudian isi dengan kode berikut.

using System;

class IncrementDecrement 
{
  public static void Main (string[] args) 
  {
    int mangga = 3;
    int apel = 4;

    Console.WriteLine($"mangga = {mangga}");    
    Console.WriteLine($"apel = {apel}");    
    
    // increment
    mangga++;
    ++apel;

    Console.WriteLine($"mangga+1 = {mangga}");    
    Console.WriteLine($"apel+1 = {apel}");

    // decrement
    mangga--;
    --apel;   

    Console.WriteLine($"mangga-1 = {mangga}");    
    Console.WriteLine($"apel-1 = {apel}");
  }
}

Setelah itu, compile dan jalankan..

Maka hasilnya:

contoh increment decrement

Operator increment dan decrement dapat ditulis di depan maupun belakang operan/variabel.

Penulisan di depan disebut pre-increment atau pra-increment, sedangkan penulisan di belakang disebut post-increment atau pasca-increment.

mangga++; // post-increment
++apel; // pre-increment

Nantinya kita akan banyak menggunakan operator increment dan decrement pada perulangan.

2. Operator Penugasan

Operator penugasan (Assignment Operator) merupakan operator untuk memberikan tugas pada variabel. Biasanya digunakan untuk mengisi nilai.

Operator Penugasan terdiri dari:

Nama OperatorSombol
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^=

Biar lebih jelas, mari kita coba dalam contoh program.

Buatlah program baru dengan nama ProgramPenugasan.cs dengan kode sebagai berikut:

using System;

class ProgramPenugasan
{
    public static void Main(String[] args)
    {
        // menggunakan operator = untuk mengisi nilai
        int mangga = 10;
        int apel = 8;
      
        // mengisi ulang nilai variabel mangga
        mangga = 15;
        
        Console.WriteLine($"mangga = {mangga}");

        // menggunakan += untuk mengisi dan menjumlahkan
        apel += 6;

        Console.WriteLine($"apel = {apel}");
    }
}

Coba compile dan jalankan..

Maka hasilnya:

contoh operator penugasan

Coba perhatikan!

Pada contoh tersebut, kita mengisi ulang nilai variabel mangga menjadi 15 dengan operator pengisian (=).

Lalu untuk variabel apel kita menambahkannya dengan 6.

apel += 6;

Sebenarnya ini bentuk sederhana dari operasi aritmatika:

apel = apel + 6;

Mirip seperti increment dan decrement ya..

Nah, untuk operator penugasan yang lainnya.. kamu bisa coba-coba sendiri.

Misalnya untuk pengurangan.. ubah saja += menjadi -=.

apel -= 6;

Tapi harap hati-hati..

❌ Jangan sampai kebalik seperti ini:

apel =- 6;

Karena ini akan membuat variabel apel diisi ulang dengan nilai -6, bukan dikurangi 6.

Paham kan?

Pada dasarnya, operator penugasan sama seperti aritmatika. Hanya saja lebih singkat dan fungsinya untuk mengisi nilai.

Berikutnya, kita akan pelajari operator yang lebih seru.. yakni perbandingan.

3. Operator Perbandingan

Operator pembanding adalah operator untuk membandingkan dua buah nilai. Operator ini juga dikenal dengan operator relasi.

Operator pembanding terdiri dari:

Nama OperatorSimbol
Lebih Besar>
Lebih Kecil<
Sama Dengan==
Tidak Sama dengan!=
Lebih Besar Sama dengan>=
Lebih Kecil Sama dengan<=

Nilai yang dihasilkan dari operasi pembanding akan berupa boolean True dan False.

Biar lebih jelas, mari kita coba dalam program.

Buatlah program baru dengan nama ProgramPerbandingan.cs dengan kode sebagai berikut:

using System;

class ProgramPerbandingan
{
    public static void Main(String[] args)
    {
        int mangga, apel = 0;

        Console.Write("jumlah mangga = ");
        mangga = int.Parse(Console.ReadLine());
        Console.Write("jumlah apel = ");
        apel = int.Parse(Console.ReadLine());

        Console.WriteLine("Hasil perbandingan: ");
        Console.WriteLine($"mangga > apel : {mangga > apel}");
        Console.WriteLine($"mangga >= apel : {mangga >= apel}");
        Console.WriteLine($"mangga < apel : {mangga < apel}");
        Console.WriteLine($"mangga <= apel : {mangga <= apel}");
        Console.WriteLine($"mangga == apel : {mangga == apel}");
        Console.WriteLine($"mangga != apel : {mangga != apel}");
    }
}

Setelah itu, coba compile dan jalankan..

Maka hasilnya:

contoh operator perbandingan

Operator perbandingan nanti akan banyak kita pakai untuk membuat logika program di materi percabangan.

Contohnya seperti ini:

if ( mangga > apel )
{
    Console.WriteLine("Mangga lebih banyak");
}

Kita bisa bandingkan tipe data apa saja dengan operator perbandingan.

Contoh:

Membandingkan tipe data string.

string password = "admin";
Console.WriteLine(password == "admin"); // True

Membandingkan tipe data integer dengan float.

Console.WriteLine(0.1f == 1); // False

Membandingkan tipe data boolean.

Console.WriteLine(True != False); // True

Paham kan?

Kalau begitu lanjut ke:

4. Operator Logika

Kalau kamu pernah belajar logika matematika, pasti tidak akan asing dengan operator ini.

Nama OperatorSimbol
Logika AND&&
Logika OR||
Negasi/kebalikan!

Hasil operasi dari operator logika sama seperti operator perbandingan, yakni boolean True dan False.

Namun perlu diingat:

Operan harus bertipe boolean.

Karena jika tidak, maka akan terjadi error.

Operator Logika digunakan untuk membuat operasi logika.

Misalnya seperti ini:

  • Pernyataan 1: Mangga rasanya manis
  • Pernyataan 2: Jeruk rasanya manis

Jika kita coba buktikan dengan tabel kebenaran logika, maka bisa kita buat seperti ini.

Mangga dan Jeruk:

Pernyataan 1Pernyataan 2Hasil Logika AND
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

Mangga atau Jeruk:

Pernyataan 1Pernyataan 2Hasil Logika OR
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

Bukan Mangga:

Pernyataan 1Hasil Logika NOT
truefalse
falsetrue

Sampai di sini paham?

Jika belum paham, coba pelajari lagi tentang logika matematika hehe.. 😄

Namun, yang terpenting adalah.. bagaimana cara kita menggunakannya di dalam program.

Logika AND, OR, dan NOT nantinya akan banyak kita pakai dalam membuat logika di program.

Biar lebih jelas, mari kita coba dalam program.

Buatlah program baru dengan nama ProgramLogika.cs, kemudian isi dengan kode berikut.

using System;

class ProgramLogika
{
    public static void Main(String[] args)
    {
        
        Console.Write("Enter your age: ");
        int age = int.Parse(Console.ReadLine());
        Console.Write("Password: ");
        string password = Console.ReadLine();

        bool isAdult = age > 18 ; // pernyataan 1
        bool isPasswordValid = password == "admin"; // pernyataan 2

        // menggunakan logika AND
        if(isAdult && isPasswordValid)
        {
            Console.WriteLine("WELCOME TO THE CLUB!");
        }
        else
        {
            Console.WriteLine("Sorry, try again!");
        }
    }
}

Pada contoh program ini, kita menggunakan logika AND untuk mengecek apakah user sudah dewasa dan password yang diinputkan benar.

Maka hasilnya:

hasil logika benar

Dan jika logika AND tidak terpenuhi.. ia akan menghasilkan:

hasil logika salah

Gampang kan?

Untuk saat ini, cukup pahami bagaimana bentuk logika AND dan OR. Karena bagian if/else akan kita pelajari nanti.

5. Operator Bitwise

Operator bitwise merupakan operator yang digunakan untuk operasi berdasarkan bit (biner).

Operator bitwise terdiri dari:

Nama OperatorSimbol di Java
AND&
OR|
XOR^
NOT/komplemen~
Left Shift<<
Right Shift>>

Buat kamu yang sudah pernah belajar sistem bilangan dan sistem digital akan mudah memahami cara kerja operator ini.

Tapi buat kamu yang belum…

Saya akan coba menjelaskan dengan cara yang mudah.

Baiklah!

Misalkan kita punya nilai 6 dan 3.

Nilai 6 dan 3 kemudian kita ubah ke dalam bentuk bilangan biner.

Sehingga akan menjadi seperti ini:

6 = 0110
3 = 0011

Nah, operator bitwise akan melakukan operasi berdasarkan biner-biner tersebut.

Mari kita lihat contoh yang pertama:

Bitwise AND (&)

Bitwise AND merupakan operasi bit berdasarkan logika AND, perhatikan gambar ini.

Operator bitwise and

Perhatikan bilangan biner untuk nilai 6 dan 3.

Apabila kita melakukan operasi AND di sana, maka akan menghasilkan bilangan biner baru.

Kemudian biner yang dihasilkan tersebut diubah kembali ke dalam bilangan desimal.

Maka hasilnya adalah 2.

Mari kita coba dalam program.

Buatlah program baru bernama BitwiseAnd.cs, kemudian isi dengan kode berikut:

using System;

class BitwiseAnd
{
    public static void Main(String[] args)
    {
        int a = 6;
        int b = 3;
        
        // menggunakan operator bitwise and (&)
        int hasil = a & b;

        Console.WriteLine($"a & b = {hasil}");
    }
}

Maka hasilnya:

Program dengan operator bitwise or

Bitwise OR (|)

Operator bitwise OR juga sama seperti bitwise AND.

Operator bitwise OR akan menghasilkan nilai false atau 0 saat keduanya false.

Operator bitwise or

Contoh Program: BitwsieOr.cs

using System;

class BitwiseOr
{
    public static void Main(String[] args)
    {
        int a = 6;
        int b = 3;
        
        // menggunakan operator bitwise or (|)
        int hasil = a | b;

        Console.WriteLine($"a | b = {hasil}");
    }
}

Hasil outputnya:

a | b = 7

Bitwise XOR (^)

Operator XOR (Exclusive OR) akan menghasilkan nilai 1 saat kedua nilai tidak sama.

Operator bitwise xor

Contoh Program: BitwiseXor.cs

using System;

class BitwiseXor
{
    public static void Main(String[] args)
    {
        int a = 6;
        int b = 3;
        
        // menggunakan operator bitwise xor (^)
        int hasil = a ^ b;

        Console.WriteLine($"a ^ b = {hasil}");
    }
}

Hasil outputnya:

a ^ b = 5

Bitwise NOT (~)

Bitwise NOT dikenal juga dengan komplemen.

Operator ini akan menghasilkan nilai biner yang terbalik dari biner aslinya.

Kemudian direpresentasikan dengan komplemen dua.

Operator bitwise not

Contoh program: BitwiseNot.cs

using System;

class BitwiseNot
{
    public static void Main(String[] args)
    {
        int a = 6;
        
        // menggunakan operator bitwise not (~)
        int hasil = ~a;

        Console.WriteLine($"~a = {hasil}");
    }
}

Hasil outputnya:

~a = -7

Bitwise Left Shift (<<)

Operator bitwise left shift akan menghasilkan nilai biner yang digeser ke kiri.

Contoh:

6 << 1

Maka nilai biner dari 6 akan digeser sebanyak 1 bit ke arah kiri.

Operator bitwise left shift

Contoh program: BitwiseLeft.cs

using System;

class BitwiseLeft
{
    public static void Main(String[] args)
    {
        int a = 6;
        
        // menggunakan operator bitwise left shift (<<)
        int hasil = a << 1;

        Console.WriteLine($"a << 1 = {hasil}");
    }
}

Hasilnya:

a << 1 = 12

Bitwise Right Shift (>>)

Bitwise right shift sama seperti left shift. Perbedaannya terletak pada arahnya.

Right shift akan menggeser bit ke arah kanan.

Contoh:

6 >> 1

Maka nilai biner dari 6 akan digeser ke arah kanan sebanyak 1 bit.

Operator bitwise right shift

Contoh program: BitwiseRight.cs

using System;

class BitwiseRight
{
    public static void Main(String[] args)
    {
        int a = 6;
        
        // menggunakan operator bitwise right shift (>>)
        int hasil = a >> 1;

        Console.WriteLine($"a >> 1 = {hasil}");
    }
}

Hasilnya:

a >> 1 = 3

6. Conditional Operator (Ternary)

Conditional operator adalah operator yang membentuk logika jika/maka atau if/else. Conditional Operator disebut juga operator ternary karena memiliki tiga operan.

conditional operator

Operan pertama adalah kondisi yang akan dicek. Pada bagian ini, kita bisa membuat ekspresi dengan operator perbandingan dan logika.

Lalu operan berikutnya adalah ekspresi jika kondisi benar, dan sisanya ekspresi yang akan dipakai jika kondisi salah.

Biar lebih jelas, mari kita buat contoh programnya.

Buatlah program baru dengan nama ProgramCoditional.cs, kemudian isi dengan kode berikut.

using System;

class ProgramConditional
{
    static void Main(string[] args)
    {
        Console.Write("Berapa mumurmu: ");
        int age = int.Parse(Console.ReadLine());

        // menggunakan conditional operator
        string message = age < 18 ? "Belum cukup umur" : "sudah cukup umur untuk nikah";

        Console.WriteLine(message);
    }
}

Setelah itu, compile dan jalankan..

Maka hasilnya:

contoh conditional operator

Bisa dibilang conditional operator ini adalah bentuk singkat dari if/else.

Urutan Operasi (Operator precedence)

Satu hal lagi yang harus kamu ketahui tentang operator.

Yakni, urutan operasi.

Ini penting, agar nantinya kita bisa tentukan prioritas operasi.. mana yang didahulukan, dan mana operasi yang dilakukan belakangan.

Coba perhatikan contoh berikut:

var a = 2 + 2 * 2;
Console.WriteLine(a);

Berapakah hasilnya?

Yap, benar hasilnya 6.

Secara alami, operasi perkalian lebih dahulu dikerjakan barulah penjumlahan.

Namun, jika kita ingin memberikan prioritas agar operasi penjumlahan didahului juga bisa.

Caranya:

Tambahkan kurung pada operasi yang ingin dihitung duluan.

var a = (2 + 2) * 2;
Console.WriteLine(a);

Nah, sekarang hasilnya akan 8, karena 2+2 dihitung terlebih dahulu.. barulah di kali.

Berikut ini tabel urutan prioritas operator: 1

OperatorNama
x.y, f(x), a[i], x?.y, x?[y], x++, x--, x!, new, typeof, checked, unchecked, default, nameof, delegate, sizeof, stackalloc, x->yPrimary
+x, -x, !x, ~x, ++x, --x, ^x, (T)x, await, &x, *x, true and falseUnary
x..yRange
switchswitch expression
withwith expression
x * y, x / y, x % yMultiplicative
x + y, x – yAdditive
x << y, x >> yShift
x < y, x > y, x <= y, x >= y, is, asRelational and type-testing
x == y, x != yEquality
x & yBoolean logical AND or bitwise logical AND
x ^ yBoolean logical XOR or bitwise logical XOR
`xy`
x && yConditional AND
`x
x ?? yNull-coalescing operator
c ? t : fConditional operator
x = y, x += y, x -= y, x *= y, x /= y, x %= y, x &= y, `x= y, x ^= y, x «= y, x »= y, x ??= y, =>`

Apa Selanjutnya?

Yaa.. akhirnya selesai juga pembahasan tentang operator di C#.

Cukup banyak memang.

Kamu tidak perlu menghafal semuanya. Cukup ingat yang paling sering dipakai saja, seperti operator aritmatika, pengisian/penugasan, perbandingan dan Logika.

Untuk operator bitwise, sejauh pengalaman saya dalam membuat program.. ia agak jarang digunakan.

Lalu untuk operator ternary atau conditional operator boleh dipakai boleh juga tidak, karena merupakan bentuk lain dari if/else.

Sekian tutorial tentang operator di C#.

Berikutnya silakan pelajari:

  • Tutorial C# 07 – Percabangan pada C# (Coming Soon)

Lihat juga tutorial C# lainnya di: 📖 List Tutorial C# untuk Pemula