Ekspresi, Pernyataan & Operasi Aritmetika/Logika fileOperator Relasional Operator Logika Operator...
Embed Size (px)
Transcript of Ekspresi, Pernyataan & Operasi Aritmetika/Logika fileOperator Relasional Operator Logika Operator...

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

Ekspresi (Expression)
� Ekspresi adalah sebuah konstruksi yang tersusun dari variabel,
operator, dan pemanggilan fungsi, yang dikonstruksi sesuai dengan
sintaks dari bahasa pemgrograman, dan dapat dievaluasi menjadi
sebuah nilai.
� Contoh:
x = 1 x = 1
hasil = 1 + 2
1 * 2 * 3
x + y / 100 // ambiguous
(x + y) / 100 // unambiguous, recommended
2Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Ekspresi (Expression)
� Komponen utama ekspresi 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.
3Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

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; x = 10;
y = x + 1;
printf(“%d”, x);
x++;
� Contoh di atas termasuk pernyataan ekspresi (expression statements)
� Selain itu, ada macam pernyataan lainnya, yaitu pernyataan deklarasi
(declaration statement) dan pernyataan aliran kendali (control flow
statement)
4Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

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’; char ch = ‘A’;
� Pernyataan aliran kendali dapat berupa pencabangan
bersyarat (selection) atau pengulangan (repetition). Akan
dibahas di topik lain kelak.
5Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Presedensi & Asosiativitas
� Presedensi menentukan urutan pengerjaan operator berdasarkan prioritas. Operator yang memiliki tingkat presedensi lebih tinggi akan dikerjakan lebih dahulu.
� Assosiativitas menentukan urutan pengerjaan operator � Assosiativitas menentukan urutan pengerjaan operator berdasarkan lokasinya dalam sebuah ekspresi (apakah dari kiri atau dari kanan).
6Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Presedensi & Asosiativitas
KATEGORI SIMBOL NAMA PRIORITASURUTAN
PENGERJAAN
Resolusi Lingkup :: Resolusi Lingkup 1 Kiri-Kanan
Kurung, indeks
larik dan elemen
struktur data
() Kurung
2
Kiri-Kanan
[] Elemen array Kiri-Kanan
->Pointer ke anggota struktur atau
kelasKiri-Kanan
. Anggota struktur, union atau kelas Kiri-Kanan
7Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010
. Anggota struktur, union atau kelas Kiri-Kanan
Operator Unary
++ Pre-increment
3
Kanan-Kiri
-- Pre-decrement Kanan-Kiri
! Logika not Kanan-Kiri
~ Komplemen Bitwise Kanan-Kiri
- Unary minus Kanan-Kiri
+ Unary plus Kanan-Kiri
& Alamat Kanan-Kiri
* Indirection Kanan-Kiri
(type) Type casting Kanan-Kiri
sizeof Ukuran tipe data Kanan-Kiri
new Alokasi memori Kanan-Kiri
delete Dealokasi memori Kanan-Kiri

Presedensi & Asosiativitas
KATEGORI SIMBOL NAMA PRIORITASURUTAN
PENGERJAAN
Operator aritmatika
perkalian
* Perkalian
4 Kiri-Kanan/ Pembagian
% Sisa Pembagian
Operator penambahan+ Penambahan
5 Kiri-Kanan- Pengurangan
Pergeseran bit<< Geser Kiri
6 Kiri-Kanan>> Geser Kanan
Operator Relational
< Lebih kecil
7 Kiri-Kanan<= Lebih kecil sama dg
> Lebih besar
8Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010
> Lebih besar
>= Lebih besar sama dg
Operator Relational== Sama dengan
8 Kiri-Kanan!= Tidak sama dengan
Operator Bitwise
& Bitwise AND 9
Kiri-Kanan^ Bitwise XOR 10
| Bitwise OR 11
Operator Logika&& Logika AND 12
Kiri-Kanan|| Logika OR 13
Operator Ternary ?: Operator kondisi 14 Kanan-Kiri
Operator Penugasan
Majemuk
=, +=, -=, *=,
/=, %=Operator penugasan arithmatika
15 Kanan-Kiri&=, ^=, |=,
<<=, >>=Operator penugasan bitwise
Operator koma , Operator Koma 16 Kiri-Kanan

Presedensi & Asosiativitas
� Contoh:
� Ditulis dalam bhs pemrograman C:
yzxy
yzxyx
−
+←
x = (x * y + y * z)/(x * y – y * z);
9
1 2
3
4 5
6
7
8
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Presedensi & Asosiativitas
#include <stdio.h>
#include <stdlib.h>
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);
10
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

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

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

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

Operator Penugasan
� Contoh
x = 2; // konstanta
x = y; // variabel lain
x = 2 * y; // ekspresi
a = sin (y); // fungsia = 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 3.000 */
14Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmetika
� Digunakan untuk melakukan operasi matematika
Simbol Fungsi Contoh
+ Penambahan x = y + 6;
- Pengurangan y = x – 5;
15
- Pengurangan y = x – 5;
* Perkalian y = y * 3;
/ Pembagian z = x/y;
% Modulo A = 10 % 3;
++ Increment x++;
-- Decrement z--;
() Menaikan Priority x=(2+3)*5
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmetika
� Modulo:� Simbol : %
� Termasuk Binary operator
� Untuk menghitung sisa hasil bagi
� n % 2, dapat digunakan untuk menguji apakah integer n bernilai genap atau ganjilgenap 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
16Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmatika
� Contoh:
N++; //post increment
++N; //pre increment
N--; //post decrement
--N; //pre decrement--N; //pre decrement
� Jika statement increment stand alone. Maka N++; atau
++N; sama artinya N=N+1;
� Jika statement decrement stand alone. Maka N--; atau --
N; sama artinya N=N-1;
17Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmatika
� Contoh:
#include <stdio.h>
int main ()
{ int x = 44; int y = 44;
++x;
18
++x;
printf(”x = %d\n”, x);/* hasilnya 45 */
y++;
printf(”y = %d\n”, y); /* hasilnya 45 */
}
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmetika
� Jika ++n dan n++ sebagai statement yang terikat dalam ekspresi
lainnya (sub expresi), keduanya mempunyai arti yang berbeda.
� ++n
� n ditambah 1, baru diproses terhadap ekspresinya
n++ � n++
� n langsung diproses terhadap ekspresinya tanpa ditambah 1 terlebih dahulu,
pada saat selesai baru n ditambah 1
19
int main () {
int x=44; int y = 44; int z;
z = ++x; /* z, x nilainya 45 */
z = y++; /* z nilainya 44 dan y nilainya 45 */
return(0);
}Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Aritmetika
� Setiap ekspesi yang berbentuk :
<Variabel> = <Variabel> <Operator><Exp>;
dapat diganti dengan :
<Variabel> <Operator> = <Exp>;
� Operator ini sering disebut dengan Combined Operator.
20Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010
Ekspresi Dapat 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;

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

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

Operator Relasional
� TRUE dalam bahasa pemrograman C bernilai “tidak samadengan NOL”
� FALSE dalam bahasa pemrograman C bernilai “samadengan 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
23Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Relasional
� Contoh :
#include<stdio.h>
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);
24
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

Ekspresi Kondisional
(Conditional Expression)
� Ekspresi Kondisional menggunakan ternary operator
?:
� Sintaks : exp1 ? exp2 : exp3;
� Jika exp1 bernilai true, maka exp2 dieksekusi. Sebaliknya jika � 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>b)
bernilai salah maka z=b.
25Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Ekspresi Kondisional
#include <stdio.h>
#include <iostream.h>
int main () {
int bil, abs;
Contoh:
26
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);
}
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Logika
Simbol Fungsi
&& AND
|| OR
! NOT
� Digunakan untuk melakukan operasi logika
27
! NOT
� Table Kebenaran operator logika:
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010
A B !A A && B A || B
True True False True True
True False False False True
False True True False True
False False True False False

Operator Logika
� Operand pada operator logika harus mempunyai nilai boolean, yaitu TRUE atau FALSE. Meskipun dalam bahasa C/C++ nilai TRUE dinyatakan dalam bentuk nilai integer yang tidak sama dengan nol (0) dan sebaliknya nilai FALSE dinyatakan dalam bentuk nilai integer yang sama dengan nol (0), tetapi nilai data integer tidak integer yang sama dengan nol (0), tetapi nilai data integer tidak dibolehkan menjadi operand dari operator logika.
� Contoh:
int x=5;
int y=0, a , b;
a = x && y; //error (hasil yg salah)
b = (x > y) && (y>=0); //ok
28Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Bitwise
Simbol Fungsi Contoh
& AND A & B
| OR A | B;
29
| OR A | B;
^ XOR A ^ B;
~ Complement 1 ~A;
>> Shift Right A >> 3;
<< Shift Left B << 2;
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Bitwise
� Operasinya dilakukan bit per bit
� Contoh:
a=24 Binernya: 011000
30
a=24 Binernya: 011000
b=35 Binernya: 100011
(a&b) per bit hasilnya :
000000 desimalnya 0
(a | b) per bit hasilnya :
111011 desimalnya 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

Operator Bitwise
� Dua buah bit di-XOR-kan akan menghasilkan 1 jika kedua bit
tersebut berbeda, dan akan menghasilkan 0 jika kedua bit
tersebut sama.
� Contoh:
31
Desimal 45 binernya: 0101101
Desimal 75 binernya: 1001011
Kemudian bit per bit di XOR kan maka
hasilnya: 1100110 atau (102 desimal).
int A,B=45;
A=B^75; //Nilai
A=102
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Bitwise
� Dengan menggunakan operator komplemen (~), maka setiap
bit bernilai 0 akan dirubah menjadi 1 dan sebaliknya.
� Contoh: 0xC3 binernya: 1100 0011
Di-komplemenkan hasilnya:int A, B=0xC3;
A=~B; //nilai A=0x3C;
32
Catatan:
Penulisan bilangan hexadesimal pada bhs
pemrograman C menggunakan awalan 0x atau
0X (nol-X).
Di-komplemenkan hasilnya:
0011 1100 atau dlm notasi
hexadecimal menjadi 3C
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Bitwise
� Operator shift-right (>> n) dapat dipergunakan untuk menggeser n
bit ke kanan dan diberi nilai 0 (nol) sejumlah n bit dari paling kiri
yang ditinggalkan.
� Operator shift-left (<< n) dapat dipergunakan untuk menggeser n � Operator shift-left (<< n) dapat dipergunakan untuk menggeser n
bit ke kiri dan diberi nilai 0 (nol) sejumlah n bit dari paling kanan
yang ditinggalkan.
� Contoh:
int A, B=78;
A = B>>3; //nilai A=9
A = B<<2; //nilai A=312
33
Catatan:
78 binernya: 00100 1110
Geser kekanan 3 bit: 000001001 = 9
Geser kekiri 2 bit : 010011000 = 312Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010

Operator Pointer
� Pointer operator terdiri dari :
� & (address of)
� * (value of)
AKAN DIBAHAS PADA TOPIK POINTER
34
AKAN DIBAHAS PADA TOPIK POINTER
Ekspresi Pernyataan Operasi Aritmetika Logika - TIF UB 2010