Operator

Operator Aritmetika

Dalam setiap bahasa pemrograman selalu memiliki operator yang berguna untuk melakukan suatu operasi dgn menggunakan symbol symbol tertentu. Dalam postingan ini akan dibahas operator-operator dalam bahasa C yang dikelompokkan dalam kategori operasionalnya.

C mendukung operator untuk operasi aritmetika seperti berikut :

+             Untuk operasi penjumlahan

      –              Untuk operasi pengurangan

      *             Untuk operasi perkalian

      /              Untuk operasi pembagian

      %            Untuk mendapatkan sisa hasil bagi

perhatikan program berikut :

#include <stdio.h>
#include <stdlib.h>

///Kamus
      int i=5, j=4, k;
      float f = 5.0, g=4.0, h;

///Deskripsi
int main()
{
        k=i/j;
        h=f/g;
        h=i/j;

        return 0;
}

pada baris  k=i/j, compiler akan menggunakan pembagian integer karena kedua operand adalah tipe integer.

pada baris h=f/g, compiler akan menggunakan pembagian real(float) karena kedua operand adalah tipe real(float).

Pada baris h=i/j, compiler tetap menggunakan pembagian integer dgn mengabaikan bahwa variabel utk menampung hasilnya adalah tipe real(float). Hasil yang diperoleh akan disimpan dalam bentuk real(float).

Casting Operator

Istilah casting sering diartikan sebagai berperilaku spt sesuatu yang lain dan untuk tujuan tertentu. Perhatikan baris program berikut :

#include <stdio.h>
#include <stdlib.h>

///Kamus
      int i=5, j=4, k;
      float f;

///Deskripsi
int main()
{
      f = (float)i / j;
      f = i/(float)j;
      f = (float)i / (float)j;
      f = (float) (i / j);

      return 0;
}

Pada baris  f = (float)i / j;       f = i/(float)j;       f = (float)i / (float)j; compiler menggunakan pembagian tipe float karena salah satu operand  adalah tipe float yang secara otomatis operand yang berukuran lebih kecil akan diubah sementara menjadi float. Operasi ini disebut  type promotion.

Sedangkan pada f = (float) (i / j);  compiler tetap menggunakan pembagian integer namun hasilnya diubah ke float.

Operator Komparasi

Bahasa C dalam melakukan operasi logika menggunakan dua logika yaitu benar (true) atau salah (false) namun C tidak memiliki kata kunci khusus untuk true/false. Semua nilai yang tidak nol akan dianggap true dan nilai nol akakn dianggap false.

Logika benar dan salah ini digunakan untuk melakukan operasi perbandingan dengan berbagai kondisi yang dalam C dapat dilakukan dengan operator-operator seperti berikut :

<             Kurang dari

      <=           kurang atau sama dengan

      >             Lebih besar dari

      >=           Lebih besar atau sama dengan

      !=            Tidak sama dengan

Perhatikan contoh program berikut :

int i=10, j, k;
j = i > 5;
k = i < 2;

Hasil dari program ini akan membuat j bernilai 1 (true) karena i memang lebih besar dari 5 dan k bernilai 0 (false) karena i lebih besar dari 2.

Operator Logika

Dalam melakukan operasi perbandingan atau komparasi seringkali dilakukan untuk dua atau lebih pernyataan logika untuk menggambil sebuah keputusan. C menyediakan operator untuk melakukan perbandingan logika :

&&         Dan (and)

      ||           Atau (or)

      !              Tidak (not)

Operator-operator ini juga menganggap nilai tidak nol sebagai nilai yang benar (true) dan nol sebagai nilai yang salah (false).

contoh program :

int j=5, k=2;
if (j>10 && k<=2)

Untuk program ini, compiler tidak akan mengevaluasi k <= 2 karena operator  &&  yang akan bernilai benar hanya jika kedua operand yang dibandingkan bernilai benar(tdk nol). Jadi untuk hal ini karena j>10 bernilai salah maka compiler sudah yakin bahwa pernyataan ini bernilai salah (false). Mekanisme ini disebut short-circuit. Dengan mekanisme ini juga, compiler dapat menghasilkan program yang lebih efisien.

Sebagai saran praktis, gunakan tanda kurung untuk memisahkan masing-masing kondisi agar alur program menjadi jelas.

Bitwise Operator

Operator-operator ini digunakan untuk memanipulasi bit-bit(bitwise ) dalam sebuah variabel yang sering digunakan dalam bahasa assembly. Keberadaan operator ini sangat masuk akal karena C pertama kali dirancang untuk membuat abstraksi dari assembly dan dijuluki sebagai high level assembly.

Operator-Operator yang disediakan antara lain :

&             and

      |              or

      ~             not(negasi)

      >>           geser ke kiri

      <<           geser ke kanan

      ^             xor

Operator Kondisional

Operator ini berguna untuk menguji suatu kondisi. Operator ini mempunyai bentuk :

kondisi ? ekspresi_jika_kondisi_benar_:ekspresi_jika_kondisi_salah;

yang sama jika ditulis,

if(kondisi)
      ekspresi_jika_kondisi_benar;
else
      ekspresi_jika_kondisi_salah;

contoh :

int  a,b = 20,  c = -10;
a = (b > c)  ?  b : c;

Baris perintah itu membuat nilai a menjadi 20. Operator ini biasa disebut ternary operator.