Berlangganan

About Me


OPERATOR

OPERATOR

5

Tujuan Instruksi Umum (TIU):

Mampu mengetahui operator yang disediakan oleh bahasa C, sehingga mampu menyelesaikan permasalahan dengan melakukan operasi yang tepat dan menggunkan operator yang sesuai.

Tujuan Instruksi Khusus (TIK):

• Mengetahui jenis operasi dan operator yang digunakan secara umum dalam pemrograman. • Mengetahui operator-operator yang disediakan oleh Bahasa C. • Mampu menggunakan operator yang tepat untuk berbagai operasi

• Mengetahui derajat operator sehingga mampu menganalisa hasil yang didapat dari sebuah ekspresi • Mampu menyelesaikan permasalahan yang lebih luas dengan menggunakan operator yang telah

disediakan oleh bahasa C

Pembahasan Materi:

• Jenis operator

• Operator aritmatika • Operator penugasan • Operator relasi • Operator logika

• Operator koma • Operator bitwise • Operator cast

• Operator sizeof • Derajat operator • Ekspresi

5.1 Operasi dan Operator

Operasi merupakan pengolahan yang dapat dilakukan dilakukan terhadap sebuah atau beberapa data, dalam bahasa C operasi hanya dapat dilakukan terhadap data sejenis (tipe data yang sama) jika operasi diberlakukan terhadap data tidak sejenis umumnya akan menghasilkan keluaran yang tidak sesuai. Simbol atau tanda yang digunakan untuk suatu operasi tertentu dinamakan operator . Sedangkan data (variabel atau konstanta) yang dioperasikan disebut operan .

Berdasarkan jumlah operan maka operator dibagi atas:

Unary operator; operasi yang dilakukan hanya melibatkan satu operan. Binary operator, operasi yang dilakukan melibatkan dua operan. Ternary operator, operasi yang dilakukan melibatkan tiga operan.

36

-----------------------------------------------------Page 1-----------------------------------------------------

Berdasarkan jenis operasinya maka operator dalam bahasa C terbagi atas:

Operator aritmatika Operator relasi Operator logika

Operator pengolahan bit ( bitwise )

Selain operator di atas bahasa C juga menyediakan operator khusus lainnya, yaitu:

Operator koma Operator cast

Operator penugasan Operator bersyarat Operator sizeof

5.2 Operator Aritmatika

Operator aritmatika adalah operator yang digunakan untuk pengolahan aritmatika seperti penjumlahan dua bilangan bulat atau penjumlahan dua bilangan pecahan, pengurangan dua bilangan bulat atau pengurangan dua bilangan pecahan, perkalian dua bilangan bulat atau perkalian dua bilangan pecahan, pembagian dua bialangan bulat atau pembagian dua bilangan pecahan, mencari sisa pembagian bilangan bulat ( modulo ), penambahan nilai variabel dengan satu ( increment ), dan pengurangan nilai variabel dengan satu ( decrement ). Operator aritmatika yang disediakan oleh bahasa C disajikan pada tabel 5.1.

Tabel 5.1 Operator Aritmatika dalam Bahasa C:

Catatan:

Operator

+

- * /

%

++

--

Arti

penjumlahan pengurangan perkalian

pembagian modulo

increment decrement

Tipe data

(bilangan bulat atau bilangan pecahan) (bilangan bulat atau bilangan pecahan) (bilangan bulat atau bilangan pecahan) (bilangan bulat atau bilangan pecahan) (bilangan bulat) (bilangan bulat) (bilangan bulat)

-
 untuk operator ++ dan -- adalah salah satu contoh operator yang hanya memerlukan satu operan ( unary operator ). Operator ++ dan -- akan menyatakan operasi yang berbeda jika operator diletakkan sebelum atau sesudah operan. Contoh:

Operasi
 B++ dan ++B. Pada B++ variabel B akan diproses terlebih dahulu baru kemudian variabel B

dijumlahkan dengan satu. Pada ++B variabel B akan dijumlahkan dengan satu terlebih dahulu baru variabel B diproses selanjutnya (misalnya memberikan nilai B ke variabel lain).

Kedua program di bawah ini akan memberikan penjelasan tentang perbedaan hasil yang akan didapatkan jika peletakan operator ++ sebelum dan sesudah operan.

37

-----------------------------------------------------Page 2-----------------------------------------------------

Listing program 5.1 Operator Increment setelah Operan

/* Program Operator increment setelah operan */

#include <stdio.h>

main() {

int B=5, A;

A= B++;

//variabel B diberi nilai awal = 5

/* nilai B diberikan terlebih dahulu ke A,

sehingga A bernilai 5, lalu B ditambahkan dengan 1,

nilai B sekarang sama dengan 6 */

printf("A = %d\n", A); printf("B = %d", B); return 0;

}

Listing program 5.2 Operator Increment sebelum Operan

#include <stdio.h>

main() {

A = 5 B = 6

int B=5, A;

A= ++B;

//variabel B diberi nilai awal = 5

/* nilai B dijumlahkan terlebih dahulu dengan 1, sehingga B bernilai 6, lalu diberikan ke A sehingga A sekarang bernilai 6 */

}

printf("A = %d\n", A); printf("B = %d", B); return 0;

A = 6 B = 6

-
 Operator % adalah operator untuk operasi modulo, yaitu mencari sisa pembagian. Misalkan x = 9 % 2, maka nilai x yang didapat adalah 1 ( 9 dibagi 2 sama dengan 4 sisa 1).

Listing program 5.3 Program Operator %

#include <stdio.h>

main() {

int x, y; x= 9 % 2;

y= 102 % 7;

printf("x = %d\n", x); printf("y = %d", y);

x = 1 y = 4

}

5.3 Operator Relasi

Operator relasi atau operator hubungan adalah operator yang digunakan untuk membandingkan dua nilai sejenis. Kedua nilai tersebut dapat berupa komstanta ataupun variabel. Jika hasil perbandingan benar maka akan

38

-----------------------------------------------------Page 3-----------------------------------------------------

dikembalikan nilai numerik 1, jika salah akan dikembalikan nilai numerik 0. Jenis operator relasi yang dapat digunakan dalam bahasa C disajikan pada tabel 5.2.

Tabel 5.2 Operator Relasi dalam Bahasa C

Operator

<

<=

>

>= ==

!=

Arti

lebih kecil dari

lebih kecil atau sama dengan lebih besar dari

lebih besar atau sama dengan sama dengan

tidak sama dengan

Contoh

5<3 5<=5 4>4

4>=4

(3+2) ==(4+1)

(5 + 2) != (5 – 2)

Nilai

0 1 0 1 1 1

Operator relasi banyak digunakan untuk penyeleksian kondisi dengan statemen if , do-while dan while-do .

Listing program 5.4 Operator Relasi

#include <stdio.h>

main() {

int a=5, b=3;

printf("%d", a printf("\n%d", printf("\n%d", printf("\n%d", printf("\n%d", printf("\n%d",
 > b);

a >= b+2);

a-2 == 2-b); a/2 <= b-1); b*2 < b/2); a*b != b*a);

// // // // // //
 5 > 3

5 >= 3+2

3-2 == 2-3 5/2 <= 3-1 3*2 < 3/2

5*3 != 3*5

1 1 0 1 0 0

}

5.4 Operator Logika

Operator logika adalah operator yang digunakan untuk membandingkan dua buah nilai logika. Nilai logika adalah nilai benar atau salah. Jika sebelumnya pada operator relasi yang dibandingkan adalah nilai dari data apakah benar (1) ataukah salah (0), maka pada operator logika bisa dikatakan yang dibandingkan adalah logika hasil dari operator relasi. Operator-operator logika yang disediakan pada bahasa C disajikan pada tabel 5.3, dan tabel 5.4 akan menyajikan tabel hasil perbandingan logika.

Tabel 5.3 Operator Logika dalam Bahasa C

Operator

!

&&

Fungsi

NOT AND

Contoh ! (5 > 4)

(3 >= 3) && (2 != (4/2))

Hasil

0 (salah) 0 (salah)

Penjelasan

Fungsi NOT digunakan untuk membalik hasil logika. Fungsi AND akan memberikan nilai benar (1) jika kedua

nilai logika yang dibandingkan bernilai benar (1).

||
 OR
 (3 >= 3) || (2 != (4/2))
 1(benar)
 Fungsi OR akan memberikan nilai benar (1) jika salah

satu nilai logika yang dibandingkan bernilai benar (1).

39

-----------------------------------------------------Page 4-----------------------------------------------------

Tabel 5.4 Operator Logika dalam Bahasa C

A
 B
 !B
 A && B
 A || B

1
 1
 0
 1
 1

Catatan:

1 0 0
 0 1 0
 1 0 1
 0 0 0
 1 1 0

1 0
 True / benar False/ salah

Listing program 5.5 Program Operator Logika

#include <stdio.h>

main()

{

printf("%d", ! (5 > 4));

printf("\n%d", (3 >= 3) && (2 != (4/2))); printf("\n%d",(3 >= 3) || (2 != (4/2)));

0 0 1

}

5.5 Operator Bitwise

Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operator bitwise

dan artinya disajikan pada tabel 5.5.

Tabel 5.5 Operator Logika dalam Bahasa C

Operator

&

|

^ ~

>> <<

Fungsi

AND OR

XOR

Complement 1 Shift right Shift left

Contoh

A&B A|B A^B ~A

A >> 2 B << 1

Penjelasan

AND bitwise dari A dan B OR bitwise dari A dan B XOR bitwise dari A dan B

Mengubah bit 0 menjadi 1, dan sebaliknya

Bit-bit dari A digeser ke kanan sebanyak 2 posisi bit Bit-bit dari B digeser ke kiri sebanyak 1 posisi bit

Catatan : untuk XOR akan menghasilkan nilai 1 jika nilai-nilai yang dibandingkan berbeda ( contoh 1 XOR 0 akan

bernilai 1, sedangkan 1 XOR 1 akan bernilai 0).

Listing program 5.6 Program Operator Bitwise

#include <stdio.h>

main() {

int a= 5, b=7;
 /*konversi desimal ke bentuk biner (bit) 5 --> 101 , 7--> 111 */

printf("%d printf("%d printf("%d printf("%d
 & % d = %d\n", a, b, a&b); | % d = %d\n", a, b, a|b); ^ % d = %d\n", a, b, a^b); >> 2 = %d\n", a, a>>2);
 // // // /*
 bit 101 & bit 111 bit 101 | bit 111 bit 101 ^ bit 111

bit 101 digeser ke kanan

5 5 5 5
 & 7 = 5 | 7 = 7 ^ 7 = 2

>> 2 = 1

printf("%d << 1 = %d", b, b<<1);

2 posisi bit */

/* bit 111 digeser ke kiri

5
 << 1 = 14

1 posisi bit */

}

40

-----------------------------------------------------Page 5-----------------------------------------------------

Penjelasan:

a=5 b=7
 00000101 00000111
 a=5 b=7
 00000101 00000111
 a=5 b=7
 00000101 00000111
 a=5
 00000101

--------------------------
 --------------------------
 --------------------------
 a>>2
 00000001 = 1

a&b
 00000101 = 5
 a | b
 00000111 = 7
 a^b
 00000010 = 2

b=7

b<<1

00000111

00001110 = 14

5.6 Operator Koma

Operator koma digunakan untuk memisahkan sederetan variabel dalam sebuah deklarasi, memisahkan argument fungsi, menyatukan dua ekspresi menjadi sebuah pernyataan, dan memungkinkan pemberian lebih dari satu ekspresi pada inisialisasi nilai awal. Contoh pemakaian operator koma :

float x,y,z;

// operator koma digunakan untuk memisahkan 3 variabel dalam sebuah deklarasi.

int a= 5, b=7; // operator koma digunakan untuk memisahkan pemeberian nilai awal dari dua variabel.

x = y, y = z, z = x; a = (b=3, b+2);
 // operator koma digunakan untuk menyatukan tiga ekspresi menjadi satu pernyataan. /* operator koma digunakan untuk menggabungkan beberapa ungkapan dengan proses yang berurutan dari ungkapan sebelah kiri koma kemudian ke ungkapan disebelah kanan koma */

Pernyataaan a = (b=3, b+2);
 pertama nilai 3 akan diberikan kepada b , lalu variabel b yang bernilai 3

dijumlahkan dengan 2 dan diberikan kepada a , sehingga nilai akhir dari kedua variabel tersebut adalah a bernilai 5 dan b bernilai 3.

5.7 Operator Cast

Operator cast digunakan untuk memaksa sebuah nilai berubah tipe data secara ekplisit dalam satu pernyataan. Operator cast termasuk dari operator unary karena hanya membutuhkan satu operan untuk dioperasikan. Variabel yang dirubah dengan menggunakan operator cast hanya akan berubah pada statemen tersebut. Operator cast sangat diperlukan untuk mengoperasikan variabel-variabel yang bertipe data berbeda, karena dalam C jika menggunakan pengkonversian tipe data secara otomatis dapat menimbulkan hal-hal yang tidak diinginkan, misalnya pemotongan nilai. Symbol yang digunakan untuk operator cast adalah tanda kurung ( ) Contoh penggunaan operator cast :

Hasil = (int) 3.2 + 10

Nilai = int (4.56) + 11

nilai Hasil = 13

3.2 mendapatkan pemaksaan tipe data menjadi integer sehingga nilai 3.2 akan menjadi 3

nilai Nilai = 15

Tanda kurung dapat dituliskan pada tipe data ataupun pada nilai/variabel.

41

-----------------------------------------------------Page 6-----------------------------------------------------

Listing program 5.6 Program Operator Cast

#include <stdio.h>

main() {

int a=5, b=2; float x=2.5;

float hasil = int(3.2) + 10; printf("%f", hasil);

float nilai = 3.2 / a; printf("\n%f", nilai);

hasil= a * x;

//hasil = 3 + 10

13.000000

0.640000

printf("\n%d", (int) hasil);

hasil= a * x;

printf("\n%f", hasil);

/*hasil di rubah menjadi

bertipe integer */

//hasil tetap bertipe float

12

12.500000

}

5.8 Operator Penugasan (assignment)

Operator penugasan adalah operator yang berfungsi memberikan nilai kepada pengenal(identifier). Operator penugasan menggunakan symbol (=). Operan di sebelah kiri operator harus berupa variabel atau konstanta. Operan di sebelah kanan harus berupa ekspresi. Contoh penggunaan operator penugasan ‘=’ :

Luas = alas * tinggi / 2;

A = B = 12;

// nilai variabel Luas adalah nilai alas dikali dengan nilai tinggi dibagi 2 // nilai variabel A akan sama dengan nilai variabel B akan sama dengan 12

Selain operator ‘=’, bahasa C juga menyediakan operator penugasan yang lain, tabel 5.6 menyajikan

operator penugasan tersebut.

Tabel 5.6 Operator Logika dalam Bahasa C

Operator

+=

-= *= /=

%=

<<= >>=

&=

|=

^=

Contoh

x += y x -= y x *= y x /= y

x %= y x <<= y x >>= y x &= y x |= y x ^= y

Ekuivalen dengan

x=x+y x=x-y x=x*y x=x/y

x=x%y x = x << y x = x >> y x = x &y x=x|y x=x^y

42

-----------------------------------------------------Page 7-----------------------------------------------------

5.9
 Operator Bersyarat

Operator bersyarat atau dikenal juga sebagai ekspresi bersyarat ( conditional expression ) merupakan satu- satunya operator ternary (memerlukan 3 operan untuk operasinya). Ketiga operan yang diperlukan tersebut terdiri dari satu ekspresi yang akan diuji dan dua ekspresi pilihan. Bentuk umum dari operator bersyarat adalah sebagai berikut:

Kondisi ? ekspresi1: ekspresi2;

Operator bersyarat akan menghasilkan satu dari dua pilihan. Misalnya x = y? nilai1: nilai2; Pertama ekspresi x= y akan diperiksa apakah bernilai benar atau salah , jika bernilai benar maka ekspresi nilai1 akan dievaluasi dan nilainya akan diberikan kepada x , jika salah maka ekspresi nilai2 yang akan dievaluasi dan nilainya diberikan kepada x .

Listing program 5.7 Program Operator Bersyarat

#include <stdio.h>

main()

{ int min, max, n1=10, n2=5;

min = n1<n2? n1: n2;

printf("Nilai yang lebih kecil dari %d dan %d = %d", n1, n2,min);

max= n1>n2? n1: n2;

printf("\nNilai yang lebih besar dari %d dan %d = %d", n1, n2,max);

}

Nilai yang lebih kecil dari 10 dan 5 = 5

Nilai yang lebih besar dari 10 dan 5 = 10

5.10 Operator sizeof

Operator sizeof digunakan untuk mengetahui ukuran dari operannya dalam satuan byte. Operator size of

hanya memerlukan satu operan sehingga termasuk dalam operator unary.

Listing program 5.8 Program Operator sizeof

#include <stdio.h>

int main(void)

{

long big;

printf("\"big\" is %u bytes\n", sizeof(big)); printf("a short is %u bytes\n", sizeof(short));

"big" is 4 bytes

a short is 2 bytes

a double is 8 bytes

printf("a double is %u bytes\n", sizeof(double)); return 0;

}

43

-----------------------------------------------------Page 8-----------------------------------------------------

5.11 Derajat Operator

Derajat operator menunjukkan tingkat atau level operator, misalnya operator ( ) memiliki derajat yang lebih tinggi dibandingkan dengan operator *, sehingga operator ( ) akan dikerjakan terlebih dahulu sebelum operator *, contohnya ekspresi: y = ( 5 + 3 ) * 2 akan menghasilkan nilai y sama dengan 16 , bandingkan dengan ekspresi kedua berikut: y = 5 + (3 * 2) akan menghasilkan nilai y sama dengan 11 . Meskipun elemen yang digunakan sama tetapi ada perbedaan peletakan tanda “( )” maka akan menyebabkan hasil yang berbeda, ini dikarenakan tingkatan atau derajat dari masing-masing operator berbeda.

Selain derajat operator jika dilihat ekspresi y = ( 5 + 3 ) * 2 maka kita dapat evaluasi arah proses operasi (asosiativitas), pertama akan dioperasikan nilai 5 dijumlahkan dengan 3, kemudian hasil penjumlahan tersebut dikalikan dengan 2 baru kemudian nilai yang didapat tersebut diberikan ke y , ini berarti operator ‘+’ dan ‘*’ memiliki arah operasi dari kiri ke kanan, sedangkan operator ‘=’ memiliki arah operasi dari kanan ke kiri.

Untuk mengetahui derajat atau tingkatan dari masing-masing operator dan arah proses operasi dapat

dilihat dari tabel 5.7

Tabel 5.7 Predensi dan Asosiativitas Operator

Kategori

Kurung, indeks array, dan elemen struktur data Operator unary

Operator aritmatika Operator aritmatika

Operator bitwise pergeseran bit Operator relasi Operator relasi

Operator bitwise AND Operator bitwise XOR Operator bitwise OR Operator kondisi AND Operator kondisi OR Operator bersyarat Operator penugasan Operator koma

Operator

() [] -> .

! ~ ++ -- - + (cast) * & sizeof */% +-

<< >>

< <= >= > == != & ^ |

&& ||

?:

= += -= *= /= %= ,

Arah Proses

(Asosiativitas) Kiri ke kanan Kanan ke kiri Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kiri ke kanan Kanan ke kiri Kiri ke kanan

Derajat

(Predensi)

Tertinggi

Terendah

5.12 Ekspresi

Ekspresi adalah segala sesuatu yang bila dievaluasi akan menghasilkan suatu nilai. 1. Sebuah konstanta adalah sebuah ekspresi. 2. Sebuah variabel adalah sebuah ekspresi.

3. Sebuah ekspresi yang dioperasikan dengan operasi lain adalah sebuah ekspresi. 4. pemanggilan terhadap sebuah function adalah sebuah ekspresi.

44

-----------------------------------------------------Page 9-----------------------------------------------------

Latihan:

1. Tulislah empat pernyataan/ekspresi dalam bahasa C yang berbeda untuk menyatakan variabel x yang bertipe

integer ditambah 1.

2. Tulislah sebuah ekspresi dalam bahasa C untuk masing-masing pernyataan di bawah ini: a. Berikan nilai penjumlahan x dan y ke z dan nilai x bertambah 1 ( increment ) setelah operasi. b. Mengalikan variabel kali dengan 2 menggunakan operator *=

c.
 Mengalikan variabel kali dengan 2 menggunakan operator * dan =

d. Decrement (mengurangi dengan 1) variabel z , lalu variabel z mengurangi variabel total dan nilai akhir

diberikan ke variabel total .

e. Jumlahkan variabel x dengan variabel total lalu berikan nilainya kepada variabel total, kemudian variabel x

berkurang ( decrement ) 1.

3. Berdasarkan derajat masing-masing operator, tentukanlah apakah ekspresi-ekspresi di bawah ini

menghasilkan nilai benar atau salah:

a.
 5 < 4 * 2 || int (43 / 2) > 21 || 7 * 8 == 6 + 5 * 10

b. ! (5 > 4 * 2 && int (43 / 2) > 21 && 7 * 8 == 6 + 5 * 10)

c.
 23 - 5 + 4 * 3 >= 40 - 5 * 2 && 23 * 2 == 93 / 3

Tugas Mandiri:

Berdasarkan program di bawah ini berapakah nilai akhir dari variabel-variabel yang terdapat dalam program?

#include <stdio.h>

main() {

int a,b,c,d,e;

float v, w, x, y, z ;

a= 5, b = 4, v = 1.5, w= 5.2;

a c d b d e x v w y z
 += b/(int)v;

= a > b*2 && a != w; = ++c;

= a + c / d; *= b * v;

= d /(int)w; = a % e;

*= d / x; += e * 2;

= v > w ? a + 2: b *2; = sizeof(a)+ sizeof(x);

}

printf("a= printf("b= printf("c= printf("d= printf("e= printf("v= printf("w= printf("x= printf("y= printf("z=
 %d\n",a); %d\n",b); %d\n",c); %d\n",d); %d\n",e);

%.3f\n",v); %.3f\n",w); %.3f\n",x); %.3f\n",y); %.3f\n",z);

45

-----------------------------------------------------Page 10-----------------------------------------------------

Referensi:

Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997

Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001

Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993

Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004

☺☺☺

46

-----------------------------------------------------Page 11-----------------------------------------------------

2 Responses to "OPERATOR"

  1. Mantaps gan, oya jika ada yang sekiranya mebutuhkan tambahan referensi, silakan mampir saja dimari gan, suguhan lengkap dengan contoh programmnya,
    http://gatewawan.blogspot.com/2014/07/mengenal-operator-dalam-cpp.html

    Best Regard,
    Teknocrat

    ReplyDelete