Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Dasar Pemrograman Komputer Ekspresi, Pernyataan & Operasi Aritmetika/Logika Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika.

Presentasi serupa


Presentasi berjudul: "Dasar Pemrograman Komputer Ekspresi, Pernyataan & Operasi Aritmetika/Logika Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika."— Transcript presentasi:

1 Dasar Pemrograman Komputer Ekspresi, Pernyataan & Operasi Aritmetika/Logika Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika - UB

2 Ekspresi, Pernyataan & Operasi Aritmetika/Logika  Ekspresi (expression)  Pernyataan (statements)  Operator Penugasan (assignment)  Operator Aritmetika  Operator Logika  Operator Relasional  Operator Bitwise  Operator Pointer 2Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

3 Ekspresi (Expression)  Ekspresi adalah segala sesuatu yang jika dievaluasi akan menghasilkan suatu nilai  Ekspresi bisa berupa:  sebuah konstanta  sebuah variabel  sebuah ekspresi yang dioperasikan dengan ekspresi lain  pemanggilan sebuah fungsi  Contoh: 1 x x = 1 hasil = * 2 * 3 x + y printf(“Salam untuk alam semesta!\n”) 3Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

4 Ekspresi Operasi  Komponen utama operasi adalah operand dan operator  Operand dapat berupa variabel, konstanta, nilai data konstan maupun fungsi. Setiap operand harus memiliki nilai data.  Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru.  Contoh: x = 10 // operasi penugasan; operand: x dan 10; // operator: = y = x + 1 // operasi penjumlahan dan penugasan 4Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

5 Pernyataan (Statements)  Secara sederhana analogis dengan ‘kalimat’ dalam bahasa natural.  Sebuah pernyataan membentuk unit eksekusi yang komplit (a complete unit of execution), dapat dieksekusi oleh komputer.  Ekspresi dapat diubah menjadi pernyataan (sehingga dapat dieksekusi) dengan mengakhiri penulisannya dengan titik koma atau semicolon (;)  Contoh: x = 10; y = x + 1; printf(“%d”, x); x++;  Contoh di atas termasuk pernyataan ekspresi (expression statements) 5Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

6 Pernyataan (Statements)  Selain pernyataan ekspresi, ada macam pernyataan lainnya, yaitu pernyataan deklarasi (declaration statement) dan pernyataan aliran kendali (control flow statement)  Contoh pernyataan deklarasi: int x; char ch = ‘A’;  Pernyataan aliran kendali dapat berupa pencabangan bersyarat (selection) atau pengulangan (repetition). Akan dibahas di topik lain kelak. 6Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

7 Operator  Didasarkan atas jumlah operand, operator dapat dibedakan menjadi tiga jenis, yaitu :  Unary operator  Binary operator  Ternary operator  Unary operator memerlukan 1 operand, binary operator memerlukan 2 operand, sedangkan ternary operator memerlukan 3 operand. 7Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

8 Operator  Berdasarkan jenis operasinya, operator dalam bahasa pemrograman C dapat dikelompokkan :  Operator Penugasan (assignment operator)  Operator Aritmetika  Operator Logika  Operator Bitwise  Operator Relasional  Operator Pointer 8Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

9 Operator Penugasan (assignment)  Termasuk binary operator  Digunakan untuk memberikan nilai kepada suatu operand. Sintaksis: operand1 operator operand2;  operand1 harus berupa variabel, sedangkan operand2 dapat sembarang operand termasuk variabel dari operand1.  Arah pengerjaan (asosiasivitas) operator penugasan dari kanan ke kiri. 9Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

10 Operator Penugasan  Contoh x = 2;// konstanta x = y;// variabel lain x = 2 * y;// ekspresi a = sin (y);// fungsi  Tipe hasil operasi disesuaikan dengan tipe operand sebelah kiri. int x = 7/2; /*nilai x sama dengan 3 */ float y = 3;/*nilai y sama dengan */ 10Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

11 Operator Aritmetika  Digunakan untuk melakukan operasi matematika 11 SimbolFungsiContoh +Penambahanx = y + 6; -Pengurangany = x – 5; *Perkaliany = y * 3; /Pembagianz = x/y; %ModuloA = 10 % 3; ++Incrementx++; --Decrementz--; ()Menaikan prioritasx=(2+3)*5 Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

12 Presedensi & Asosiasivitas  Presedensi menentukan urutan pengerjaan operator berdasarkan prioritas. Operator yang memiliki tingkat presedensi lebih tinggi akan dikerjakan lebih dahulu. Misal: x + y * z Tanda * untuk perkalian berpresedensi lebih tinggi daripada tanda + untuk penjumlahan y * z dikerjakan lebih dulu, baru x ditambahkan hasil perkalian tersebut  Asosiativitas menentukan arah operasi sebuah ekspresi (dari kiri ke kanan, atau dari kanan ke kiri). 12Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

13 Presedensi & Asosiasivitas  Asosiativitas menentukan arah operasi sebuah ekspresi (dari kiri ke kanan, atau dari kanan ke kiri). a = 10; /* operasi penugasan, dari kanan ke kiri */ x + y; /* operasi penjumlahan, dari kiri ke kanan */ z = x + y; /* kombinasi operasi penjumlahan dan penugasan: 1. cek presedensi 2. cek asosiasivitas */ 13Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

14 Presedensi & Asosiasivitas 14Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010 KATEGORISIMBOLNAMAPRIORITAS ARAH PENGERJAAN Resolusi lingkup:: Resolusi lingkup1Kiri-Kanan Kurung, indeks larik (array) dan elemen struktur data () Kurung 2 Kiri-Kanan [] Elemen larik (array)Kiri-Kanan -> Pointer ke anggota struktur atau kelas Kiri-Kanan. Anggota struktur, union atau kelasKiri-Kanan Operator unary ++ Pre-increment 3 Kanan-Kiri -- Pre-decrementKanan-Kiri ! Logika NOTKanan-Kiri ~ Komplemen bitwiseKanan-Kiri - Unary minusKanan-Kiri + Unary plusKanan-Kiri & AlamatKanan-Kiri * IndirectionKanan-Kiri (type) Type castingKanan-Kiri sizeof Ukuran tipe dataKanan-Kiri new Alokasi memoriKanan-Kiri delete Dealokasi memoriKanan-Kiri

15 Presedensi & Asosiasivitas 15Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010 KATEGORISIMBOLNAMAPRIORITASARAH PENGERJAAN Operator aritmatika perkalian * Perkalian 4Kiri-Kanan / Pembagian % Sisa pembagian Operator penambahan + Penambahan 5Kiri-Kanan - Pengurangan Pergeseran bit << Geser kiri 6Kiri-Kanan >> Geser kanan Operator relasional < Lebih kecil daripada 7Kiri-Kanan <= Lebih kecil atau sama dengan > Lebih besar daripada >= Lebih besar atau sama dengan Operator relasional == Sama dengan 8Kiri-Kanan != Tidak sama dengan Operator bitwise & Bitwise AND9 Kiri-Kanan ^ Bitwise XOR10 | Bitwise OR11 Operator Logika && Logika AND12 Kiri-Kanan || Logika OR13 Operator Ternary?: Operator kondisional14Kanan-Kiri Operator Penugasan Majemuk =, +=, -=, *=, /=, %= Operator penugasan aritmetika 15Kanan-Kiri &=, ^=, |=, >= Operator penugasan bitwise Operator koma, Operator Koma16Kiri-Kanan

16 Presedensi & Asosiasivitas  Contoh:  Ditulis dalam bhs pemrograman C: x = (x * y + y * z)/(x * y – y * z);  Contoh:  Ditulis dalam bhs pemrograman C: x = (x * y + y * z)/(x * y – y * z); Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

17 Presedensi & Asosiasivitas 17 #include int main () { int a, b, z=100; float x, y; printf("Melihat pengaruh prioritas dan urutan pengerjaan\n\n"); printf("Masukkan sebarang nilai integer: "); scanf("%d",&a); x = a/3*3; y = a*3/3; z += b = a; printf("\n\nx = %d/3*3, diperoleh x = %f\n\n",a,x); printf("y = %d*3/3, diperoleh y = %f\n\n",a,y); printf("bila z=100, maka untuk z += b = %d diperoleh z = %d\n\n\n", a,z); system("PAUSE"); return(0); } #include int main () { int a, b, z=100; float x, y; printf("Melihat pengaruh prioritas dan urutan pengerjaan\n\n"); printf("Masukkan sebarang nilai integer: "); scanf("%d",&a); x = a/3*3; y = a*3/3; z += b = a; printf("\n\nx = %d/3*3, diperoleh x = %f\n\n",a,x); printf("y = %d*3/3, diperoleh y = %f\n\n",a,y); printf("bila z=100, maka untuk z += b = %d diperoleh z = %d\n\n\n", a,z); system("PAUSE"); return(0); } Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

18 Operator Aritmetika  Modulo:  Simbol : %  Termasuk Binary operator  Untuk menghitung sisa hasil bagi  n % 2, dapat digunakan untuk menguji apakah integer n bernilai genap atau ganjil  n % 2 = 0  n GENAP  n % 2 = 1  n GANJIL  Increment dan Decrement:  Simbol : ++(increment), --(decrement)  Termasuk unary operator  Menaikkan (++) dan menurunkan (--) nilai variabel dengan 1  Posisinya bisa di depan (pre) atau dibelakang (post) variabel 18Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

19 Operator Aritmetika  Contoh: N++; //post increment ++N; //pre increment N--; //post decrement --N; //pre decrement  Jika statement increment “stand alone”, maka N++; atau ++N; sama artinya dengan N=N+1;  Jika statement decrement “stand alone”, maka N--; atau --N; sama artinya dengan N=N-1; 19Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

20 Operator Aritmetika  Contoh: 20 #include int main () { int x = 44; int y = 44; ++x; printf(”x = %d\n”, x);/* x = ?*/ y++; printf(”y = %d\n”, y); /* y = ? */ system(“PAUSE”); return 0; } #include int main () { int x = 44; int y = 44; ++x; printf(”x = %d\n”, x);/* x = ?*/ y++; printf(”y = %d\n”, y); /* y = ? */ system(“PAUSE”); return 0; } Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

21 Operator Aritmetika  Jika ++n dan n++ terikat dalam ekspresi lainnya (sub expresi) pada sebuah pernyataan, keduanya mempunyai arti yang berbeda.  ++n  n ditambah 1, baru diproses terhadap ekspresinya  n++  n langsung diproses terhadap ekspresinya tanpa ditambah 1 terlebih dahulu, pada saat ekspresi tersebut selesai baru n ditambah 1 21 int main () { int x=44; int y = 44; int z; z = ++x; printf(“z=%d, x=%d\n”, z, x); z = y++; printf(“z=%d, y=%d\n”, z, y); return (0); } int main () { int x=44; int y = 44; int z; z = ++x; printf(“z=%d, x=%d\n”, z, x); z = y++; printf(“z=%d, y=%d\n”, z, y); return (0); } Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

22 Combined Operator 22  Setiap ekspesi yang berbentuk : = ; dapat diganti dengan : = ;  Operator ini sering disebut dengan Combined Operator. Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010 EkspresiDapat diganti dengan a = a + b;a += b; a = a – b;a -= b; a = a * b;a *= b; a = a / b;a /= b; a = a % b;a %= b; a = a ^ b ;a ^= b;

23 Operator Aritmetika Contoh soal: x *= y +1; artinya sama dengan : A.x = x * (y + 1); B.x = x * y + 1; C.x = x + 1 * y; D.x = (x + 1) * y; 23Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

24  Digunakan untuk melakukan operasi logika  Operasi logika menghasilkan nilai TRUE atau FALSE  Tabel kebenaran operator logika: Operator Logika 24 SimbolFungsi &&AND ||OR !NOT Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010 AB!A!BA && BA || B True False True False True FalseTrue FalseTrue False True False

25 Operator Logika  Operand pada operator logika harus mempunyai nilai boolean, yaitu TRUE atau FALSE.  Dalam bahasa C:  FALSE dinyatakan dalam bentuk integer bernilai 0  TRUE dinyatakan dalam bentuk integer bernilai selain 0, dengan default 1.  Contoh: int x=5; int y=0, a, b; a = x && y; b = (x > y) && (y>=0); 25Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

26 Operator Relasional SimbolFungsi = Sama Dengan !=Tidak Sama Dengan Lebih Besar Dari <=Lebih Kecil atau Sama Dengan >=Lebih Besar atau Sama Dengan ?:Conditional assignment 26 Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSE Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

27 Operator Relasional  TRUE dalam bahasa pemrograman C bernilai “tidak sama dengan NOL”  FALSE dalam bahasa pemrograman C bernilai “sama dengan NOL”  Sedangkan nilai TRUE yang diset oleh program C saat run time bernilai sama dengan 1.  Contoh: int x; x = (20 > 10); //nilai x sama dgn 1 x = (20 == 10); //nilai x sama dgn 0 27Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

28 Operator Relasional  Contoh : 28 #include int main() { int x=5,y=6; if ( x == y) printf("%d sama dengan %d\n",x,y); if ( x != y) printf("%d tidak sama dengan %d\n",x,y); if ( x < y) printf("%d lebih kecil daripada %d\n",x,y); if ( x > y) printf("%d lebih besar daripada %d\n",x,y); if ( x <= y) printf("%d lebih kecil atau sama dengan %d\n", x,y); if ( x >= y) printf("%d lebih besar atau sama dengan %d\n", x,y); return(0); } #include int main() { int x=5,y=6; if ( x == y) printf("%d sama dengan %d\n",x,y); if ( x != y) printf("%d tidak sama dengan %d\n",x,y); if ( x < y) printf("%d lebih kecil daripada %d\n",x,y); if ( x > y) printf("%d lebih besar daripada %d\n",x,y); if ( x <= y) printf("%d lebih kecil atau sama dengan %d\n", x,y); if ( x >= y) printf("%d lebih besar atau sama dengan %d\n", x,y); return(0); } Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

29 Ekspresi Kondisional (Conditional Expression)  Ekspresi Kondisional menggunakan ternary operator ?:  Sintaksis: exp1 ? exp2 : exp3;  Jika exp1 bernilai true, maka exp2 dieksekusi. Sebaliknya jika exp1 bernilai false, maka exp3 dieksekusi.  Contoh yang sama artinya dgn statement diatas: z = (a>b) ? a : b; Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a

30 Ekspresi Kondisional 30 #include int main () { int bil, abs; printf("Menentukan nilai absolut\n\n"); printf("Masukkan bilangan integer: "); scanf("%d",&bil); abs = (bil >= 0) ? bil : - bil; printf("Nilai absolutnya adalah : %d \n\n",abs); system("PAUSE"); return(0); } #include int main () { int bil, abs; printf("Menentukan nilai absolut\n\n"); printf("Masukkan bilangan integer: "); scanf("%d",&bil); abs = (bil >= 0) ? bil : - bil; printf("Nilai absolutnya adalah : %d \n\n",abs); system("PAUSE"); return(0); } Contoh: Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

31 Operator Bitwise 31 SimbolFungsiContoh &ANDA & B |ORA | B; ^XORA ^ B; ~Complement 1~A; >>Shift RightA >> 3; <

32 Operator Bitwise AND, OR  Operasinya dilakukan bit per bit  Contoh: 32 a=24 (desimal) = (biner) b=35 (desimal) = (biner) (a&b) per bit menghasilkan: (biner) desimalnya 0 (a | b) per bit menghasilkan : desimalnya 59 a=24 (desimal) = (biner) b=35 (desimal) = (biner) (a&b) per bit menghasilkan: (biner) desimalnya 0 (a | b) per bit menghasilkan : desimalnya 59 int a=24; int b=35; int c; c = a & b; //nilai c = 0 c = a | b; //nilai c = 59 int a=24; int b=35; int c; c = a & b; //nilai c = 0 c = a | b; //nilai c = 59 Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

33 Operator Bitwise  Dua buah bit yang di-XOR-kan akan menghasilkan 1 jika kedua bit tersebut berbeda dan akan menghasilkan 0 jika kedua bit tersebut sama.  Contoh: (desimal) = (biner) 75 (desimal) = (biner) Kedua angka ini bit per bit di XOR-kan untuk menghasilkan: (biner) atau 102 (desimal). 45 (desimal) = (biner) 75 (desimal) = (biner) Kedua angka ini bit per bit di XOR-kan untuk menghasilkan: (biner) atau 102 (desimal). int A,B=45; A=B^75; //Nilai A=102 int A,B=45; A=B^75; //Nilai A=102 Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

34 Operator Bitwise  Dengan menggunakan operator komplemen (~), maka setiap bit yang bernilai 0 akan diubah menjadi 1, dan sebaliknya.  Contoh: int A, B=0xC3; A=~B; //nilai A=0x3C; 34 Catatan: Penulisan bilangan hexadesimal pada bahasa pemrograman C menggunakan awalan 0x atau 0X (nol-X). Catatan: Penulisan bilangan hexadesimal pada bahasa pemrograman C menggunakan awalan 0x atau 0X (nol-X). 0xC3 (hexa) = (biner) Jika bilangan ini di-komplemenkan, akan menghasilkan: (biner) atau 0x3C (hexa) 0xC3 (hexa) = (biner) Jika bilangan ini di-komplemenkan, akan menghasilkan: (biner) atau 0x3C (hexa) Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

35 Operator Bitwise  Operator shift-right (>> n) dapat dipergunakan untuk menggeser sebuah bilangan biner n bit ke kanan dan memberikan nilai 0 (nol) pada sejumlah n bit paling kiri yang ditinggalkan.  Operator shift-left (<< n) dapat dipergunakan untuk menggeser sebuah bilangan biner n bit ke kiri dan memberikan nilai 0 (nol) pada sejumlah n bit paling kanan yang ditinggalkan.  Contoh: int A, B=78; A = B>>3; //nilai A=9 A = B<<1; //nilai A = ? 35 Catatan: 78 (desimal) = (biner) Geser ke kanan 3 bit: = 9 Geser ke kiri 1 bit : = ? Catatan: 78 (desimal) = (biner) Geser ke kanan 3 bit: = 9 Geser ke kiri 1 bit : = ? Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

36 Operator Pointer  Pointer operator terdiri dari :  & (address of)  * (value of)  * (decalaration of pointer) 36 AKAN DIBAHAS PADA TOPIK POINTER Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010


Download ppt "Dasar Pemrograman Komputer Ekspresi, Pernyataan & Operasi Aritmetika/Logika Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika."

Presentasi serupa


Iklan oleh Google