Menggunakan operator hitung di pemrograman C

May 21, 2016 8:56 AM

____                                                 
`MM'                                                 
 MM            /                                     
 MM ___  __   /M      ____     __      ____  ___  __ 
 MM `MM 6MMb /MMMMM  6MMMMb   6MMbMMM 6MMMMb `MM 6MM 
 MM  MMM9 `Mb MM    6M'  `Mb 6M'`Mb  6M'  `Mb MM69 " 
 MM  MM'   MM MM    MM    MM MM  MM  MM    MM MM'    
 MM  MM    MM MM    MMMMMMMM YM.,M9  MMMMMMMM MM     
 MM  MM    MM MM    MM        YMM9   MM       MM     
 MM  MM    MM YM.  ,YM    d9 (M      YM    d9 MM     
_MM__MM_  _MM_ YMMM9 YMMMM9   YMMMMb. YMMMM9 _MM_    
                             6M    Yb                
                             YM.   d9                
                              YMMMM9 
 
















Operator adalah fasilitas pokok dalam bahasa pemrograman. Sebagaimana fungsi sebuah presesor adalah untuk melakukan komputasi. Dan komputasi yang dilakukan prosesor berkaitan erat dengan operator. Seluk beluk komputasi yang dilakukan oleh prosesor bisa diilustrasikan sebagai berikut: program menghempaskan semua kode program ke memori. Kode program tersebut tertulis dalam bentuk bahasa mesin (binary) yang kemudian di-disassemble menjadi assembly. Kode-kode mesin tersebut dikirim oleh sistem I/O ke prosesor melalui BUS untuk diolah oleh prosesor. Data-data akan ditempatkan di register, dan prosesor akan memproses data di register tersebut sesuai dengan kode biner yang dikirim dari memori. 


Jika dicermati, pemrosesan data yang dilakukan oleh prosesor berupa proses komputasi. Proses komputasi ini jika di C dapat di bagi ke dalam beberapa bagian sebagai beriku:

0x09A. Operator Aritmatik
Operator aritmatik adalah operator yang biasa kita gunakan untuk operasi matematika, seperti penambahan, pengurangan, pembagian dan perkalian. Opertor aritmatik yang bisa kita guankan diantaranya adalah sebagai berikut:

Operator Maksudnya Contoh penggunaan
——– ——– —————–
– unary minus -x
* multiplication x * y
/ division x / y
% modulus x % y
+ addision x + y
– subtraction x – y

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=contoh kode=-=

/**
** teknik 0x1-a
** Menggunakan Operator Aritmatik
** (C) heLL_c0de 07
**/
int main (void)
{
int a = 10, b = 13;

printf (“Menggunakan operator matematika.\n”);
printf (“a = 10, b = 13\n”);

printf (“a + b = %d\n”, a+b), printf (“a – b = %d\n”, a-b);
printf (“a * b = %d\n”, a * b), printf (“a / b = %d\n”, a/b);

printf (“a mod b = %d\n”, a % b);

printf (“(-a) + b = %d\n”, (-a)+b);
printf (“(((-(a*b)+25) – (b/3)) * 100) + 11000 = %d\n”,
(((-(a*b)+25) – (b/3)) * 100)+11000);

return 0;
}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=kompilasi=

war49@darkstar%% cc techniq_0x1.c -o techniq_0x1

war49@darkstar%% ./techniq_0x1
Menggunakan operator matematika.
a = 10, b = 13
a + b = 23
a – b = -3
a * b = 130
a / b = 0
a mod b = 10
(-a) + b = 3
(((-(a*b)+25) – (b/3)) * 100) + 11000 = 100

0x09B. Relational Operator
Operator-operator relational digunakan untuk pengecekan antara dua hal. Apa maksudnya?, dua hal yang dimaksud adalah dua variabel yang akan dilakukan perbandingan. Misalkan variabel x dan y, keduanya sama-sama memiliki nilai. Dari perbandingan x dan y akan didapatkan kesimpulan apakah x benilai sama dengan y atau x bernilai lebih kecil dari y atau sebaliknya, atau x sama dengan y. Untuk membandingkan dua buah nilai variabel kita bisa memakai operator relational.

Operator Artinya Contoh penggunaan
——– ————- —————–
< less than x < y
<= less than or equal to x <= y
> greater than x > y
>= greater than or equal to x >= y
== equals x == y
!= not equal x != y

Untuk menggunakan operator-operator tersebut, paling mudah kita memakai statemen if.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=contoh kode=-=

/**
** teknik 0x2
** Menggunakan operator relational
** (C) heLL_c0de 07
**/
int main (void)
{
int x = 10, y = 15;

if ( x == y ) printf (“x sama dengan y\n”);
if ( x != y ) printf (“x tidak sama dengan y\n”);
if ( x > y ) printf (“x lebih besar dari y\n”);
if ( x < y ) printf (“x lebih kecil dari y\n”);
if ( x >= y ) printf (“x lebih besar atau sama dengan y\n”);
if ( x <= y ) printf (“x lebih kecil atau sama dengan y\n”);

return 0;
}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=kompilasi=

war49@darkstar%% cc techniq_0x2.c -o techniq_0x2
war49@darkstar%% ./techniq_0x2
x tidak sama dengan y
x lebih kecil dari y
x lebih kecil atau sama dengan y

0x09C. Logical Operator
Logical operator sering dipakai, terutama ketika kita harus memeriksa beberapa kondisi melibatkan beberapa operator relational. Perhatikan list berikut:

Operator Arti Contoh penggunaan
——– ————- —————–
! logical NOT if (!ret_addr)
&& logical AND if ((x > y) && (z < y))
|| logical OR if ((x < y) || (z > 0))

Logika AND (&&) akan mengeksekusi kode jika kedua perbandingan bernilai benar, Sedangkan logika OR (||) akan mengeksekusi kode jika salah satu atau kedua perbandingan bernilai benar. Logika NOT (!) akan memeriksa apakah ekspresi bernilai salah.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=contoh kode=-=

/**
** teknik 0x3
** Menggunakan operator relational
** (C) heLL_c0de 07
**/
int main (void)
{
int x = 10, y = 15;

if ((x == y) || (x < y)) printf (“x = y atau x < y\n”);
if ((x != y) && (x > y)) printf (“x != y && x > y\n”);

if (!(x < y)) printf (“x lebih besar dari y\n”);
else printf (“x lebih kecil dari y\n”);

if ((x <= y) && (y > x) || (x = 10) && !(y < x))
printf (“multiple …\n”);

return 0;
}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=kompilasi=

war49@darkstar%% gcc techniq_0x3.c -o techniq_0x3
war49@darkstar%% ./techniq_0x3
x = y atau x < y
x lebih kecil dari y
multiple …

0x09D. Bitwise Operator
Salah satu keunggulan bahasa C dan C++ yang tidak dimiliki oleh bahasa pemrograman lain kecuali perl adalah bitwise. Dengan bitwise memungkinkan kita untuk melakukan operasi bit. Semua data yang ada di komputer dapat direpresentasikan dalam bit. Bitwise ini digunakan untuk memanipulasi nilai bit data.

Operator Arti Contoh penggunaan
——– ————- —————–
~ one’s complement ~x
<< left shift x << n
>> right shift x >> n
& bitwise AND x & 4
| bitwise OR x | 3
^ bitwise XOR x ^ 4

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=contoh kode=-=

/**
** teknik 0x4
** Menggunakan operator relational
** (C) heLL_c0de 07
**/
int main (void)
{
int x = 10;

printf (“geser biner x ke kiri sebanyak 2 kali\n”);
printf (“x << 2 = %d\n\n”, (x << 2));

printf (“geser biner x ke kanan sebanyak 2 kali\n”);
printf (“x << 2 = %d\n\n”, (x >> 2));

printf (“x & 10 = %d\n”, (x & 2));
printf (“x | 10 = %d\n”, (x | 2));

printf (“!x = %d\n”, !x);
printf (“~x = %d\n”, ~x);

printf (“x ^ 10 = %d\n”, (x ^ 2));
return 0;
}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=kompilasi=

war49@darkstar%% cc techniq_0x4.c -o techniq_0x4
war49@darkstar%% ./techniq_0x4
geser biner x ke kiri sebanyak 2 kali
x << 2 = 40

geser biner x ke kanan sebanyak 2 kali
x << 2 = 2

x & 10 = 2
x | 10 = 10
!x = 0
~x = -11
x ^ 10 = 8

Bitwise beroperasi pada data biner, jadi jika kita memiliki variabel x = 4 maka kalau nilai x kita tulis dalam biner adalah:

x => 0100 (dalam 8 bit biner)

Jika x kita geser bitnya ke kanan sebanyak satu kali (x >> 1) maka x = 2 (desimal):

x => 0010 (dalam desimal x = 2)

Jika operasi (z = x & 3) maka:

x => 0010
3 => 0011 (&)
—–
z = 0010 (desimal = 2)

Maka z bernilai 2.

0x025. Assignment Operator
Operator Arti Contoh penggunaan
——– ————- —————–
= assignment x = 3
+= addinional update x += 1
-= subtraction update x -= 1
*= multiplication update x *= 2
/= division update x /= 3
%= modulus update x %= 5
<<= left shift update x <<= 3
>>= right shift update x >>= 5
&= bitwise AND update x &= 3
|= bitwise OR update x |= 2
^= bitwise XOR x ^= 4

Relatif mudah untuk memahami assigment operator. Operator Assigment di atas sebenarnya relatif sama dengan operator-operator yang telah dibahas di sub bab sebelumnya, dan operator assigment digunakan untuk memperpendek sintak.

x += 1; sama dengan x = x+1;
x -= 2; sama dengan x = x-1;
x *= 4; sama dengan x = x*4;
x &= 3; sama dengan x = x&3;
x ^= 1; sama dengan x = x^1;


0x09E. Increment and Decrement Operator
Operator Arti Contoh penggunaan
——– ————- —————–
++ pre increment ++i
post increment i++
— pre decrement –i
post decrement i–

0x09F. Conditional Operator
Ketika anda sedang menyeleksi suatu nilai dengan if–then–else, anda bisa menggantikannya dengan Conditional Operator. Untuk lebih jelasnya fahami contoh berikut:

if ((c >= 4) && (c <= 9))
x = c;
else
y = c;

Anda bisa menggantikan statemen if-then-else di atas dengan operator kondisi. Baiklah, berikut contoh penggunaan operator kondisi sesuai dengan statemen if-then-else di atas.

c >= 4 && c <= 9 ? x = c : y = c;

format:
expresi1 ? expresi2 : expresi3;

0 comments:

Article list :