Pertemuan ke-5 OPERATOR DAN EKSPRESI 1.1 Operator Aritmatika Ada 5 operator aritmatika dalam C yaitu : Operator Tujuan + Penambahan - Pengurangan * Perkalian / Pembagian % Sisa pembagian integer Contoh : Diketahui bilangan integer a dan b dengan nilainya a=3; b=5, bilangan integer i = 7, float f =5.5, dan variabel c bertipe char menyatakan karakter w. Ekpresi Nilai / Hasil Ekspresi Nilai Type a + b 8 i + f 12.5 Double a - b -2 i + c 126 Integer a * b 15 i + c 0 78 Integer a / b 0 (i + c) (2 * f / 123.8 Double a % b 2 1. Bagaimana jika ekspresi f % a?.. 1.2 Operator Unary Adalah Operator yang hanya mengoperasikan satu operand ( -, ++, -- ) Contoh : ++i, i++, i--, --i 2. Apa perbedaan tanda operan didepan dengan di belakang! Berikan contoh programnya 1.3 Operator Relasional dan Logika Ada 4 operator relasi dalam C yaitu : < Lebih kecil <= Lebih kecil atau sama dengan > Lebih besar >= Lebih besar atau sama dengan 5) Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5 Page 1
Operator Persamaan : == Samadengan!= Tidak sama dengan Contoh : Misal I, j, dan k adalah variabel integer yang nilainya 1,2 dan 3. Maka isilah ekspresi dibawah ini : Table 1. Ekspresi-Interpretasi-Nilai Ekspresi interpretasi Nilai I < j Apakah 1 kurang dari 2 Benar/ya/true (I + j) >= k Apakah 3 lebih besar atau sama dengan 3 Benar/ya/true (j + k) > ( I + Apakah 5 lebih besar dari 6 Salah/tdk/false 5) K!= 3 Apakah 3 tidak sama dengan 3 Salah/tdk/false J == 2 Apakah 2 sama dengan 2 Benar/ya/true Operator Logika : && Dan Atau Contoh : Misal i, j, dan k adalah variabel integer yang nilainya 1,2 dan 3. Maka isilah ekspresi dibawah ini : Ekspresi interpretasi Nilai (i < j) && (j > T && F F k) (i < j) (j > k) T F T Operator Assignment : Aturan dasar operator assignment adalah sebagai berikut : Identifier = expression Dan perluasannya sebagai berikut : Identifier1 = Identifier2= Identifier3= = expression Contoh : Misal I adalah variabel bertipe integer, Ekspresi Nilai I = 3.3 3 I =-3.9-3 Dan juga assignment ekspresi ke ekspresi : Expression1 += expression2 Expression1 -= expression2 Contoh : Misal i dan j adalah variabel bertipe integer dengan nilai 5 dan 7, f dan g adalah float dengan nilai 5.5 dan -3.25. Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5 Page 2
Ekspresi Ekspresi Yang Ekuivalen Nilai Akhir i += 5 i = i +5 10 f -= g f = f - g 8.75 f /= 3 f = f / 3 1.83333 i %=(j 2) i = i % ( j 2) 0 Operator kondisonal : Operator kondisional dicirikan dengan tanda (? : ). Aturan penulisan sebagai berikut : Expression1? expression2 : expression3 Contoh : Misalkan i bernilai 1, maka (i < 0)? 0 : 5 1.4 Group Preseden Operator Table 2. Group Presenden Operator Kategori Operator Operator - operator Asosiasi Unary operator - ++! sizeof (type) R L Perkalian, pembagian, modulo * / % L R Penambahan dan pengurangan + - L R Operator relasi < <= > >= L R Operator persamaan ==!= L R Logika And && L R Logika Or L R Operator Kondisional? : R L Operator Assignment = += *= /= %= R L Contoh Program : Source Code 1. Increment.c /* File : Increment.c */ /* Deskripsi : Pengaruh dari operator ++ */ #include <stdio.h> { /* Kamus */ int i, j, k; i = 3; j = i++; /* Post increment */ printf("nilai i setelah Post Increment : %d\n",i); printf("nilai j setelah assignment dari i: %d\n", j); k = ++i; /* Pre increment */ printf("nilai i setelah Pre increment : %d\n",i); printf("nilai k setelah assignment dari i: %d\n",k); /* Pre increment dan post increment i di dalam fungsi printf */ Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5 Page 3
printf("nilai i : %d\n", ++i); printf("nilai k : %d\n",k++); Source Code 2. Oper1.c /* File : Oper1.c *//* Deskripsi : Pemakaian beberapa operator terhadap bit */ #include <stdio.h> { /* Kamus */ int n = 10; /* dalam bil biner -> 1010 */ int x = 1; /* dalam bil biner -> 0001 */ int y = 2; /* dalam bil biner -> 0010 */ printf("n=%d \n",n); printf("x=%d \n",x); printf("y=%d \n",y); printf("n ^ 8 = %d \n",n ^ 8); /* 1010 XOR 1000 */ printf("n & 8 = %d \n",n & 8); /* 1010 AND 1000 */ printf("n 8 = %d \n",n 8); /* 1010 OR 1000 */ printf ("x & ~8 = %d \n",x & ~8); /* 0001 AND 0111 */ printf("y << 2 = %d \n",y << 2); /* 10 ==> 1000 = 8 */ printf("y >> 3 = %d \n",y >> 3); /* 10 ==> 0000 = 0 */ Source Code 3.oper2.c /* File : oper2.c */ /* Deskripsi : Contoh pengoperasian bertype dasar */ #include "boolean.h" { /* Kamus */ boolean Bool1, Bool2, TF; int i, j, hsl; float x,y,res; Bool1=true; Bool2=false; TF = Bool1 && Bool2; /* Boolean AND */ TF = Bool1 Bool2; /* Boolean OR */ TF =! Bool1; /* Not */ TF = Bool1 ^Bool2; /* XOR */ /* Operasi Numerik */ Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5 Page 4
i=5; j=2; hsl = i + j; hsl=i-j; hsl= i/j; hsl = i * j; hsl = i/j; /* Pembagian */ hsl = i % j; /* Modulo */ /* Operasi Numerik */ x = 5.0; y=2.0; res = x + y; res=x - y; res = x / y; res=x * y; /* operator relasional numerik */ TF = (i==j); TF = (i!=j); TF = (i < j); TF=(i > j); TF =(i<=j); TF = (i>=j); TF = (x < y); TF=(x > y); TF = (x <= y); TF = (x >= y); Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5 Page 5