Dalam C ataupun C++, ada banyak jenis operator yang digunakan untuk melakukan perhitungan atau pengolahan data, salah satunya adalah operator aritmatika. Operator Aritmatika yang paling umum digunakan adalah Penjumlahan (addition), Pengurangan (substraction), Pembagian (Division), Perkalian (Multiplication), dan Modulus. Sama halnya di bidang matematika, operator – operator ini mempunyai fungsi yang sama dengan namanya. Operator aritmatika termasuk binary operator, yaitu operator yang membutuhkan dua operan.
Berikut ini contoh bagaimana setiap operator di atas bekerja.
Operator | Arti | Contoh |
+ | Penjumlahan | total = harga + pajak; |
- | Pengurangan | harga = total – pajak; |
* | Perkalian | pajak = harga * persen; |
/ | Pembagian | hargaJual = hargaAsli / 2; |
% | Modulus | sisa = nilai % 3; |
- Operator penjumlahan mengembalikan nilai dari hasil penjumlahan ke dua operannya.
total = 4 + 8; // total diberi nilai 12 - Operator pengurangan mengembalikan nilai dari hasil pengurangan ke dua operannya.
total = 8 – 4; // total diberi nilai 4
operator pengurangan juga bisa digunakan sebagai unary operator untuk menandai bahwa bilangan yang mengikutinya adalah nilai minus. Cara menuliskannya sama saja dengan cara menuliskan bilangan minus dalam matematika. - Operator perkalian mengembalikan nilai dari hasil perkalian ke dua operannya.
total = 8 * 4; // total diberi nilai 32 - Operator pembagian mengembalikan nilai dari hasil pembagian ke dua operannya.
total = 8 / 4; // total diberi nilai 2
untuk operator pembagian ada beberapa hal yang perlu diperhatikan. Cara kerja operator pembagian tergantung pada operannya. Ketika salah satu operannya adalah floating-point (bilangan dengan koma), maka akan terjadi pembagian sebagaiman pada umumnya. Namun ketika kedua operannya adalah integer, hasil pembagian juga akan menjadi bilangan bulat, hal ini dikenal sebagai integer division. Angka setelah koma otomatis akan dibuang. Perhatikan contoh berikut:
double total = 10 / 4; // total akan bernilai 2
agar mendapatkan hasil yang benar, maka pernyataan di atas seharusnya seperti ini
double total = 10.0 / 4; // total akan bernilai 2.5
Perhatikan bahwa untuk mendapatkan hasil floating-point, salah satu operan atau keduanya harus dikenali sebagai bilangan floating-point. - Operator modulus menghitung sisa dari pembagian integer. Operator modulus akan terus membagi operan di sebelah kiri operator sampai bilangan pembagi lebih besar dari sisa pembagian, hasil operator modulus akan selalu bernilai integer dan operator ini tidak bisa digunakan untuk floating-point.
myModulus = 19 % 6; // myModulus diberi nilai 1
Pada contoh di atas, angka 19 dibagi dengan angka 6 sebanyak 3 kali sehingga menghasilkan sisa 1, nilai sisa inilah yang diberikan ke myModulus.
Pembagian pertama: 19/6=13
Pembagian kedua: 13/6=7
Pembagian ketiga: 7/6=1
Sama halnya dalam matematika, operator aritmatika juga bisa digabungkan dalam satu pernyataan, misalnya
nilaiTotal = nilaiA – nilaiB + nilaiC / nilaiD * nilaiE;
tentu saja jika dalam suatu ekspresi terdapat dua atau lebih operator yang berbeda maka operator yang mempunyai prioritas lebih tinggi akan di kerjakan lebih dulu. Berikut ini urutan tingkat prioritas operator aritmatika.
Tingkat | * / % |
+ - |
Perkalian dan pembagian mempunyai prioritas yang sama dan lebih tinggi dari penjumlahan dan pengurangan. Jika dalam ekspresi terdapat dua operator yang mempunyai prioritas yang sama, maka urutan pengerjaan akan dilakukan dari kiri ke kanan. Misalnya
nilaiGanti = nilaiC / nilaiD * nilaiE;
maka yang pertama dikerjakan adalah nilaiC / nilaiD, kemudian hasil pembagian ini akan dikalikan dengan nilaiE. Perhatikan contoh berikut. Jika program di atas dijalankan, maka printf() akan menampilkan bilTotal = 5. Jika dijabarkan, maka proses pengerjaan ekspresi di atas akan menjadi
nilaiGanti = nilaiC / nilaiD * nilaiE;
maka yang pertama dikerjakan adalah nilaiC / nilaiD, kemudian hasil pembagian ini akan dikalikan dengan nilaiE. Perhatikan contoh berikut. Jika program di atas dijalankan, maka printf() akan menampilkan bilTotal = 5. Jika dijabarkan, maka proses pengerjaan ekspresi di atas akan menjadi
- Operasi pertama -> 2 * 4 = 8 . . . (i), sekarang ekspresinya menjadi bilTotal = 4 + 2 – 8 / 8.
- Operasi kedua -> 8 / 8 = 1 . . . (ii), sekarang ekspresinya menjadi bilTotal = 4 + 2 – 1.
- Operasi ketiga -> 4 + 2 = 6 . . . (iii), sekarang ekspresinya menjadi bilTotal = 6 – 1.
- Operasi terakhir -> 6 – 1 = 5 . . . (iv), hasil akhir, nilai inilah yang diberikan ke bilTotal.
Untuk membuat prioritas suatu operator lebih tinggi dari operator lainnya, maka gunakan tanda kurung. Misalnya pada contoh di atas jika pernyataannya diubah menjadi.
bilTotal = bilSatu + (bilDua – bilTiga) * bilEmpat / bilLima;
maka sekarang bilTotal akan bernilai 4, karena bilDua – bilTiga (2 – 2) dikerjakan lebih dahulu, dan hasilnya kemudian dikalikan dengan bilEmpat. Setelah itu, ekspresi akan dikerjakan sebagaimana urutannya.
Dalam pemrograman yang digunakan seringkali bukan hanya bilangan positif, karena itu perlu juga untuk mengetahui operasi yang terjadi dengan bilangan negatif. Bagi anda yang mengerti matematika, utamanya aljabar, maka hal ini tidak akan susah karena pada dasarnya prinsipnya sama saja. Namun bagi anda yang belum mengerti, perlu diketahui bahwa ketika suatu operator bertemu dengan bilangan negatif, maka bisa saja terjadi perubahan operasi atau hasil yang berbeda. Perhatikan aturan berikut:
bilTotal = bilSatu + (bilDua – bilTiga) * bilEmpat / bilLima;
maka sekarang bilTotal akan bernilai 4, karena bilDua – bilTiga (2 – 2) dikerjakan lebih dahulu, dan hasilnya kemudian dikalikan dengan bilEmpat. Setelah itu, ekspresi akan dikerjakan sebagaimana urutannya.
Dalam pemrograman yang digunakan seringkali bukan hanya bilangan positif, karena itu perlu juga untuk mengetahui operasi yang terjadi dengan bilangan negatif. Bagi anda yang mengerti matematika, utamanya aljabar, maka hal ini tidak akan susah karena pada dasarnya prinsipnya sama saja. Namun bagi anda yang belum mengerti, perlu diketahui bahwa ketika suatu operator bertemu dengan bilangan negatif, maka bisa saja terjadi perubahan operasi atau hasil yang berbeda. Perhatikan aturan berikut:
- Jika bilangan negatif bertemu dengan operator penjumlahan, maka operasinya menjadi pengurangan, misalnya 4 + (-2) = 4 – 2 = 2.
- Jika bilangan negatif bertemu dengan operator pengurangan, maka operasinya menjadi penjumlahan, misalnya 4 – (-2) = 4 + 2 = 6.
- Jika salah satu operan dari operasi pembagian adalah negatif, maka hasilnya adalah negatif, dan jika keduanya negatif maka hasilnya positif. Hal ini juga berlaku pada perkalian.
Operator aritmatika juga bisa digabungkan secara langsung dengan operator Penugasan, perhatikan pernyataan berikut
nilaiSatu += nilaiDua;
pada pernyataan di atas, nilaiSatu ditambah dengan nilaiDua dan kemudian hasilnya diberikan ke nilaiSatu. Persamaan pernyataan di atas adalah
nilaiSatu = nilaiSatu + nilaiDua.
Tentu saja ini tidak hanya berlaku untuk operator penjumlahan saja, tapi cara ini bisa digunakan untuk semua operator aritmatika. Namun pastikan bahwa lvalue dan rvalue telah diinisialisasi agar tidak terjadi kesalahan.
Sekali lagi, hal yang perlu diperhatikan dalam menggunakan pernyataan yang memakai operator adalah bahwa pastikan nilai yang dihasilkan sesuai dengan tipe data yang digunakan untuk menyimpan nilai tersebut. Misalnya jika dalam suatu pembagian anda menginginkan hasil pecahan namun menggunakan tipe data integer untuk menyimpan nilai tersebut, maka tentu saja akan terjadi kesalahan dan akan berpengaruh pada logika program.
nilaiSatu += nilaiDua;
pada pernyataan di atas, nilaiSatu ditambah dengan nilaiDua dan kemudian hasilnya diberikan ke nilaiSatu. Persamaan pernyataan di atas adalah
nilaiSatu = nilaiSatu + nilaiDua.
Tentu saja ini tidak hanya berlaku untuk operator penjumlahan saja, tapi cara ini bisa digunakan untuk semua operator aritmatika. Namun pastikan bahwa lvalue dan rvalue telah diinisialisasi agar tidak terjadi kesalahan.
Sekali lagi, hal yang perlu diperhatikan dalam menggunakan pernyataan yang memakai operator adalah bahwa pastikan nilai yang dihasilkan sesuai dengan tipe data yang digunakan untuk menyimpan nilai tersebut. Misalnya jika dalam suatu pembagian anda menginginkan hasil pecahan namun menggunakan tipe data integer untuk menyimpan nilai tersebut, maka tentu saja akan terjadi kesalahan dan akan berpengaruh pada logika program.
No comments:
Post a Comment