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 a+b a-b a*b a / b
Nilai / Hasil 8 -2 15 0
a%b 2 1. Bagaimana jika ekspresi
Ekspresi i + f i + c i + c – ‘0’ (i + c) – (2 * f / 5)
Nilai 12.5 126 78 123.8
Type Double Integer Integer Double
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 : Operator Arti < Lebih kecil <= Lebih kecil atau sama dengan > Lebih besar >= Lebih besar atau sama dengan
Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5
Page 1
Operator Persamaan : Operator Arti == 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 I < j (I + j) >= k (j + k) > ( I + 5) K != 3 J == 2
interpretasi Apakah 1 kurang dari 2 Apakah 3 lebih besar atau sama dengan 3 Apakah 5 lebih besar dari 6
Nilai Benar/ya/true Benar/ya/true Salah/tdk/false
Apakah 3 tidak sama dengan 3 Apakah 2 sama dengan 2
Salah/tdk/false Benar/ya/true
Operator Logika : Operator Arti && 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 i += 5 f -= g f /= 3 i %=(j – 2)
Ekspresi Yang Ekuivalen i = i +5 f=f-g f=f/3 i = i % ( j – 2)
Nilai Akhir 10 8.75 1.83333 0
Operator kondisonal : Operator kondisional dicirikan dengan tanda (? : ). Aturan penulisan sebagai berikut : Expression1 ? expression2 : expression3
Contoh : 1.4
Misalkan i bernilai 1, maka (i < 0) ? 0 : 5
Group Preseden Operator
Table 2. Group Presenden Operator
Kategori Operator Unary operator
Operator - operator - ++ ! sizeof (type) Perkalian, pembagian, modulo * / % Penambahan dan pengurangan + Operator relasi < <= > >= Operator persamaan == != Logika And && Logika Or || Operator Kondisional ?: Operator Assignment = += *= /= %= Contoh Program :
Asosiasi RL LR LR LR LR LR LR RL RL
Source Code 1. Increment.c
/* File : Increment.c */ /* Deskripsi : Pengaruh dari operator ++ */ #include <stdio.h> int main() { /* Kamus */ int i, j, k; /* Algoritma */ 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++); return 0; } Source Code 2. Oper1.c
/* File : Oper1.c */ /* Deskripsi : Pemakaian beberapa operator terhadap bit */ #include <stdio.h> int main() { /* Kamus */ int n = 10; /* dalam bil biner -> 1010 */ int x = 1; /* dalam bil biner -> 0001 */ int y = 2; /* dalam bil biner -> 0010 */ /* Algoritma */
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 */ return 0; } Source Code 3.oper2.c
/* File : oper2.c */ /* Deskripsi : Contoh pengoperasian bertype dasar */ #include "boolean.h" int main() { /* Kamus */ boolean Bool1, Bool2, TF; int i, j, hsl; float x,y,res; /* Algoritma */ 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); return 0; }
Teknik Elektro Unsoed, Dasar Pemrograman, Acep Taryana, #5
Page 5