Halo! Selamat datang kembali di “Seri Belajar Dasar Pemrograman Bahasa C#“. Setelah mempelajari bagaimana melakukan konversi tipe data di materi sebelumnya, kali ini kita akan mempelajari tentang bagaimana melakukan operasi aritmatika dengan bahasa C#.
Meski sepintas terlihat sepele, namun menguasai operasi aritmatika merupakan salah satu skill fundamental yang wajib kita miliki sebagai seorang programmer.
Setelah menyelesaikan materi ini, Anda akan mendapatkan pemahaman tentang bagaimana melakukan operasi aritmatika, seperti penjumlahan, pengurangan, perkalian, pembagian, dan modulus di C#. Selain itu, Anda juga akan mampu meringkas notasi operasi aritmatika sehingga kode program Anda pun bisa menjadi lebih ringkas. Terakhir, Anda akan mengerti mengapa operasi pre-increment/decrement dan post-increment/decrement akan menghasilkan nilai yang berbeda.
Menggunakan Operator Aritmatika Di C#
Untuk melakukan operasi aritmatika, C# menyediakan beberapa operator seperti tanda plus (+) untuk operasi penambahan, tanda minus (-) untuk operasi pengurangan, tanda asterik (*) untuk operasi perkalian, tanda garis miring (/) untuk operasi pembagian, dan tanda persen (%) untuk operasi modulus.
Sebuah pernyataan pada operasi aritmatika biasanya tersusun dari satu atau lebih operand dan satu atau lebih operator yang merepresentasikan sebuah ekspresi, seperti terlihat pada gambar di bawah ini.

Dalam bahasa pemrograman C#, sebuah ekspresi merupakan suatu operasi yang menghasilkan sebuah nilai. Pada gambar di atas, penjumlahan antara operand bilangan_1
dan operand bilangan_2
menghasilkan sebuah nilai yang kemudian ditetapkan ke dalam variabel hasil
. Oleh karena itu, bilangan_1 + bilangan_2
merupakan sebuah ekspresi.
Untuk membantu pemahaman Anda, buat sebuah aplikasi console dengan nama OperasiAritmatika. Lalu, tambahkan kode program di bawah ini ke dalam method Main()
.
int angka1 = 10, angka2 = 20;
int penjumlahan = 0, pengurangan = 0, perkalian = 0, modulus = 0;
double pembagian = 0;
penjumlahan = angka1 + angka2;
Console.WriteLine("{0} + {1} = {2}", angka1, angka2, penjumlahan);
pengurangan = angka2 - angka1;
Console.WriteLine("{0} - {1} = {2}", angka1, angka2, pengurangan);
perkalian = angka1 * angka2;
Console.WriteLine("{0} x {1} = {2}", angka1, angka2, perkalian);
pembagian = angka1 / angka2;
Console.WriteLine("{0} / {1} = {2}", angka1, angka2, pembagian);
modulus = angka1 % angka2;
Console.WriteLine("{0} % {1} = {2}", angka1, angka2, modulus);
/*
Output:
10 + 20 = 30
10 - 20 = 10
10 x 20 = 200
10 / 20 = 0
10 % 20 = 10
*/
Jalankan kode program di atas, lalu amati hasil yang ditampilkan di layar console. Anda akan mendapatkan hasil yang sesuai ekspektasi untuk operasi penambahan, pengurangan, perkalian, dan modulus. Tapi, coba perhatikan hasil dari operasi pembagian. Mengapa hasilnya 0 bukan 0.5? Bukannya variabel pembagian
dideklarasikan sebagai double
?
Yang perlu kita perhatikan adalah, jika seluruh operand pada suatu operasi aritmatika memiliki nilai dari tipe int
, maka operasi tersebut pasti menghasilkan nilai dari tipe int
.
Pada operasi aritmatika di atas, baik operand angka1
dan operand angka2
keduanya memiliki nilai dari tipe int
. Dengan demikian, hasil dari operasi pembagian untuk kedua nilai operand tersebut menghasilkan bilangan dari tipe int
. Operasi pembagian seperti ini biasa disebut dengan pembagian integer (integer division).
Ketika kita melakukan pembagian integer, C# akan membuang sisa hasil pembagian tersebut. Jadi, karena 10 dibagi 20 adalah 0 dan menyisakan 0.5, maka operasi tersebut akan menghasilkan angka 0.
Karena pembagian integer menghasilkan nilai dari tipe int
, maka nilai tersebut akan dikonversi secara implisit ke tipe double
sebelum ditetapkan ke variabel hasil
.
Sekarang, tambahkan kode program di bawah ini ke dalam program Anda.
double angkaDesimal = 10;
pembagian = angkaDesimal / angka2;
Console.WriteLine("{0} : {1} = {2}", angkaDesimal, angka2, pembagian);
Kali ini, operasi pembagian melibatkan variabel bertipe double
yang diberi nilai 10. Jalankan aplikasi Anda, lalu perhatikan keluaran yang Anda dapatkan.
Menyederhanakan Notasi Aritmatika
Di C#, kita bisa menyederhanakan sebuah pernyataan pada operasi aritmatika. Dengan begitu, sebuah operasi aritmatika bisa kita tulis dengan cara yang lebih ringkas seperti pada kode program di bawah ini.
int x, y;
x = y = 5;
// x = x + y
Console.WriteLine("Nilai x = {0}", x += y);
// x = x - y
Console.WriteLine("Nilai x = {0}", x -= y);
// x = x * y
Console.WriteLine("Nilai x = {0}", x *= y);
// x = x / y
Console.WriteLine("Nilai x = {0}", x /= y);
// x = x % y
Console.WriteLine("Nilai x = {0}", x %= y);
Operator Increment Dan Decrement
Ketika membuat sebuah aplikasi, tak jarang kita butuh memanipulasi suatu variabel dan kemudian menetapkan hasil manipulasinya kembali ke variabel tersebut.
Misalnya, kita mendeklarasikan sebuah pencacah yang berguna untuk melacak peningkatan atau penurunan jumlah stok di dalam gudang. Tentunya kita tidak ingin membuat variabel baru untuk menampung jumlah stok terakhir setiap kali stok di gudang bertambah maupun berkurang.
int jmlStok = 0;
int jmlStokUpdate1 = jmlStok + 100;
int jmlStokUpdate2 = jmlStokUpdate1 - 100;
Kode program di atas merupakan kode C# yang valid, sehingga tidak menghasilkan eror atau peringatan. Namun, menulis kode program seperti itu, sangatlah tidak fleksibel dan dinamis!
Agar kode program kita bisa menjadi lebih fleksibel dan dinamis, C# menyediakan beberapa cara untuk melakukan perhitungan seperti di atas.
Hitung dan Tetapkan Kembali
Daripada harus membuat variabel baru setiap ada perubahan nilai pada sebuah variabel, kita bisa memanipulasi sebuah variabel lalu menetapkan hasilnya kembali ke variabel tersebut, seperti pada contoh di bawah ini.
int jmlStok = 0;
jmlStok = jmlStok + 100;
jmlStok = jmlStok - 100;
Kode program di atas disebut dengan ekspresi penetapan (assignment expression). Apa yang dikerjakan oleh kode program di atas adalah, tambahkan atau kurangkan nilai 100 dari nilai jmlStok
saat ini, lalu tetapkan kembali hasil perhitungannya ke variabel jmlStok
semula.
Tulis dan jalankan kode program di atas, modifikasi nilainya, lalu perhatikan nilai keluaran yang Anda dapatkan.
Catatan
Anda perlu menggunakan Console.WriteLine()
untuk menampilkan variabel jmlStok
Anda bisa meringkas cara penulisan kode program di atas seperti berikut ini.
jmlStok += 100; // jmlStok = jmlStok + 100;
jmlStok -= 100; // jmlStok = jmlStok - 100;
Kenaikan Atau Penurunan Sebesar 1
Untuk menaikkan dan menurunkan nilai suatu variabel sebesar 1, C# menyediakan dua operator tambahan yang disebut dengan increment operator (++) dan decrement operator (–). Increment operator digunakan untuk menaikkan nilainya sebesar 1, sedangkan decrement operator digunakan untuk menurunkan nilainya sebesar 1.
Untuk menulis kode program di bawah ini,
umur = umur + 1;
// atau
umur += 1;
kita bisa menuliskannya seperti berikut ini.
umur++;
Prefix Dan Postfix Operator
Adakalanya kita ingin menaikkan atau menurunkan nilai sebuah variabel, sekaligus menetapkannya ke variabel yang lain, seperti berikut ini.
int original = 10;
int result = original++;
Pada kode program di atas, variabel original
dideklarasikan dengan nilai 10, lalu di baris selanjutnya kita menetapkan nilai variabel original
dengan operator ++ ke variabel result
. Pertanyaannya adalah, berapa nilai yang kini disimpan di variabel result
, apakah 10 atau 11?
Anda mungkin akan sedikit terkejut apabila saya mengatakan bahwa nilai variabel result
adalah 10.
Menggunakan operator ++ dibelakang nama variabel disebut dengan postfix. Ketika kita menggunakan operator ++ pada variabel original
sebagai postfix, maka nilai awal dari variabel itu, yaitu 10, akan ditetapkan terlebih dahulu ke variabel result
, baru setelahnya nilai variabel original
dinaikkan sebesar 1.
Agar variabel result
bernilai 11, maka kita perlu menggunakan operator ++ sebelum nama variabel original
, seperti kode program di bawah ini.
int result = ++original;
Dengan begitu, nilai variabel original
dinaikkan sebesar 1 terlebih dahulu menjadi 11, baru kemudian ditetapkan ke variabel result
.
Menggunakan operator ++ di depan nama variabel disebut dengan prefix.
Tentu saja, kita juga bisa menggunakan operator postfix dan prefix dengan decrement operator — seperti pada kode program di bawah ini.
result = original--;
result = --original;
Penutup
Pada materi kali, kita telah mempelajari tentang bagaimana melakukan operasi aritmatika di C#.
C# menyediakan beberapa operator untuk melakukan operasi aritmatika seperti operator penambahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%).
Kita juga bisa meringkas penulisan berbagai operasi aritmatika dengan operator +=, -=, *=, /=, dan %=.
Dengan increment dan decrement operator, kita bisa menaikkan atau menurunkan nilai dari sebuah variabel tanpa harus membuat variabel baru.
Itu saja meteri kita kali ini. Jika Anda merasa kesulitan dalam memahami materi ini, jangan menyerah! Tulis kesulitan atau pertanyaan Anda di kolom komentar, saya akan membantu.
Selamat belajar!