Think Different Materi DPK: Operand Operator

Pertemuan 04

Proses Sederhana

Dasar Pemrograman Komputer [TKL-4002]
2010

1

Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :


Memahami tentang proses sederhana (simple
process) berupa pemanggilan procedure
(fungsi) dan ekspresi serta dapat
menerapkannya dalam algorithma ataupun
pemrograman dengan bahasa pemrograman
C.


2

Outline Materi


Proses Sederhana (Simple Statement)



Ekspresi
Operator
Operator
Operator
Operator
Operator








Penugasan (assignment)
Logika
Aritmetika
Relasional
Bitwise

3

Proses Sederhana


Dikatakan proses sederhana karena dipandang sebagai
proses yang hanya mempunyai sebuah aliran masukan
dan sebuah aliran keluaran.



Proses sederhana dalam pemrograman komputer terdiri

dari:
• Pemanggilan procedure atau fungsi
• Perhitungan arithmatika atau logika



Dalam flow-chart
digambarkan sbb.:
Aliran Masukan
Aliran Masukan
Proc_name
()
Aliran Keluaran
Pemanggilan procedure/fungsi

atau

Proses
Aliran Keluaran


Perhitungan Arithmatika/Logika
4

Ekspresi


Ekspresi merupakan proses sederhana dalam
pemrogram-an komputer untuk melakukan proses
perhitungan arithmatika dan logika.



Prinsip dasar perhitungan arithmatika dan logika
dalam pemrograman komputer adalah melakukan
perhitungan arithmatika atau logika kemudian hasilnya
disimpan dalam variabel tertentu. Dalam flowchart
digambarkan sbb.:
Dalam C

Var  perhitungan A/L


Ekspresi

5

Ekspresi


Contoh:

cc+
1

Dlm bhs pemrograman C dapat ditulis:
c=c+1; atau c+=1; atau ++c; atau c++;



Artinya (dibaca) nilai data dari variabel c ditambah
dengan 1 hasilnya disimpan ke dalam variabel c.




Tidak boleh:

c+1

Karena tidak ada proses penyimpanan
dari hasil perhitungan dari c+1 ke variabel

6

Ekspresi


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.



Dalam pemrograman komputer penulisan perhitungan
arithmatika/logika TIDAK BOLEH
Contoh:
Untuk itu BERTINGKAT.
setiap operator memiliki
xy  yz
presedensi (hirarki) dan assosiativitas.
x
xy  yz


Untuk itu

7

Presedensi dan Assosiativitas
Operator


Presedensi menentukan urutan pengerjaan operator
berdasarkan prioritas. Operator yang memiliki
tingkat presedensi lebih tinggi akan dikerjakan lebih
dahulu.



Assosiativitas menentukan urutan pengerjaan
operator berdasarkan lokasinya dalam sebuah
ekspresi (apakah dari kiri atau dari kanan).




Assosiativitas berlaku untuk operator-operator yang
memiliki presedensi yang sama.

8

OPERATOR dengan
Prioritas dan Urutan Pengerjaan
 

SIMBOL

Resolusi Lingkup

::
()
[]

Resolusi Lingkup

Kurung
Elemen array

1

Kiri-Kanan
Kiri-Kanan
Kiri-Kanan

->

Pointer ke anggota struktur atau kelas

2

Kiri-Kanan

Kurung, indeks
larik dan elemen
struktur data


.
 

Operator Unary

 

++
-!
~
+
&
*
(type)
sizeof
new
delete

NAMA

PRIORITAS

URUTAN
PENGERJAAN

KATEGORI

Anggota struktur, union atau kelas

Kiri-Kanan

Pre-increment
Pre-decrement
Logika not
Komplemen Bitwise
Unary minus
Unary plus
Alamat
Indirection
Type casting
Ukuran tipe data
Alokasi memori
Dealokasi memori

Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri
Kanan-Kiri

3

9

OPERATOR dengan
Prioritas dan Urutan Pengerjaan
KATEGORI

SIMBOL

*
/
%
 
+
Operator penambahan
 
>
 
<

>=
 
==
Operator Relational
!=
 
&
Operator Bitwise
^
|
 
&&
Operator Logika
||
 
?:
  Operator Ternary
=, +=, -=,
*=, /=, %=
Operator Penugasan
Majemuk
&=, ^=, |=,
=
 
,
  Operator koma
Operator aritmatika
perkalian

NAMA
Perkalian
Pembagian
Sisa Pembagian
Penambahan
Pengurangan
Geser Kiri
Geser Kanan
Lebih kecil
Lebih kecil sama dg
Lebih besar
Lebih besar sama dg
Sama dengan
Tidak sama dengan
Bitwise AND
Bitwise XOR
Bitwise OR
Logika AND
Logika OR
Operator kondisi

PRIORITAS

URUTAN
PENGERJAAN

4

Kiri-Kanan

5

Kiri-Kanan

6

Kiri-Kanan

7

Kiri-Kanan

8

Kiri-Kanan

9
10
11
12
13
14

Kiri-Kanan
Kiri-Kanan
Kanan-Kiri

Operator penugasan arithmatika
15

Kanan-Kiri

16

Kiri-Kanan

Operator penugasan bitwise
Operator Koma

10

OPERATOR dengan
Prioritas dan Urutan Pengerjaan
xy  yz
x
xy  yz



Contoh:



Ditulis dalam bhs pemrograman C:
 x = (x * y + y * z)/(x * y – y * z);
1

4

2

5
6

3
7
8

11

Precedence dan Associativity
#include
#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);
}

12

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.

13

Operator


Berdasarkan jenis operasinya, operator dalam
bahasa pemrograman C dapat dikelompokkan :
• Operator Penugasan (assignment operator)
• Operator Logika
• Operator Aritmatika
• Operator Relasional
• Operator Bitwise
• Operator Pointer

14

Operator Penugasan
(assignment)


Termasuk Binary operator



Digunakan untuk memberikan nilai kepada suatu
Operand. Sintak sbb:
operand1 operator operand2;



Operand1 harus berupa variabel, sedangkan operand2
dapat sebarang operand termasuk variabel dari operand1.



Urutan pengerjaan (assosiativitas) operator penugasan
dari kanan ke kiri.

15

Operator Penugasan


Contoh
x=
x=
x=
a=



2;
y;
2 * y;
sin (y);

// konstanta
// variabel lain
// ekspresi
// fungsi

Tipe hasil operasi disesuaikan dengan tipe
operand sebelah kiri.
int x = 7/2;
/*nilai x sama dgn 3 */
float y = 3; /*nilai y sama dengan 3.000 */

16

Operator Aritmatika


Digunakan untuk melakukan operasi matematika
Simbol

Fungsi

Contoh

+

Penambahan

x = y + 6;

-

Pengurangan

y = x – 5;

*
/

Perkalian
Pembagian

y = y * 3;
z = x/y;

%
++
--

Modulo
Increment
Decrement

A = 10 % 3;
x++;
z--;

()

Menaikan Priority

x=(2+3)*5
17

Operator Aritmatika


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

18

Operator Aritmatika


Contoh:
N++;
++N;
N--;
--N;

//post increment
//pre increment
//post decrement
//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;

19

Operator Aritmatika


Contoh:
#include
int main ()
{ int x = 44; int y = 44;
++x;
printf(”x = %d\n”, x);
y++;
printf(”y = %d\n”, y);
}

/* hasilnya 45 */
/* hasilnya 45 */

20

Operator Aritmatika


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 langsung diproses terhadap ekspresinya
tanpa ditambah 1 terlebih dahulu, pada saat selesai
baru n ditambah 1
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);
}

21

Operator Aritmatika


Setiap ekspesi yang berbentuk :
= ;
dapat diganti dengan :
= ;



Operator ini sering disebut dengan Combined Operator.
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;
22

Operator Aritmatika
Contoh soal:
x *= y +1; artinya sama dengan :
x
x
x
x

=
=
=
=

Jawab:

A

A.
B.
C.
D.

x * (y + 1);
x * y + 1;
x + 1 * y;
(x + 1) * y;

23

Operator Relasional


Digunakan untuk membandingkan dua nilai, dan
hasilnya TRUE atau FALSE
Simbol

Fungsi

==
!=
<
>
=

Lebih Besar atau Sama Dengan

?:

Conditional assignment

24

Operator Relasional


TRUE dalam bahasa pemrograman C nilainya Tidak
sama dengan NOL



FALSE dalam bahasa pemrograman C nilainya sama
dengan NOL



Sedangkan nilai TRUE yang diset oleh program C
saat run time nilainya sama dengan 1.



Contoh:
int x;
x = (20 > 10); //nilai x sama dgn 1
x = (20 == 10); //nilai x sama dgn 0
25

Operator Relasional


Contoh :
#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 besar atau sama dengan %d\n",x,y);
return(0);
}

26

Conditional Expressions


Conditional expression menggunakan ternary
operator ?:



Sintak : 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>b) bernilai salah maka z=b.

27

Conditional Expressions
Contoh:
#include
#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);
}
28

Operator Logika




Digunakan untuk melakukan operasi logika
Simbol

Fungsi

&&

AND

||

OR

!

NOT

Table Kebenaran operator logika:
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
29

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 dibolehkan sbg 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
30

Operator Bitwise
Simbol

Fungsi

Contoh

&

AND

A&B

|

OR

A | B;

^

XOR

A ^ B;

~

Complement 1

>>

Shift Right

A >> 3;

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 (>3; //nilai A=9
A = B> 2;
7. A = C < 3;
8. A = C