• Tidak ada hasil yang ditemukan

Think Different Materi DPK: Operand Operator

N/A
N/A
N/A

Academic year: 2017

Membagikan "Think Different Materi DPK: Operand Operator"

Copied!
43
0
0

Teks penuh

(1)

Proses Sederhana

Pertemuan 04

(2)

Learning Outcomes

Pada akhir pertemuan ini, diharapkan mahasiswa

akan mampu :

Memahami tentang proses sederhana (simple

process) berupa pemanggilan procedure

(fungsi) dan ekspresi serta dapat

(3)

Outline Materi

Proses Sederhana (Simple Statement)

Ekspresi

Operator Penugasan (assignment)

Operator Logika

Operator Aritmetika

Operator Relasional

(4)

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.:

Proses

Aliran Masukan

Aliran Keluaran

atau

Proc_name

()

(5)

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.:

Var  perhitungan A/L

Ekspresi

(6)

Contoh:

Artinya (dibaca) nilai data dari variabel c ditambah

dengan 1 hasilnya disimpan ke dalam variabel c.

Tidak boleh:

Ekspresi

c + 1

c  c +

1

Dlm bhs pemrograman C dapat ditulis:

c=c+1; atau c+=1; atau ++c; atau c++;

(7)

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 BERTINGKAT

. Contoh:

Ekspresi

yz

xy

x

Untuk itu setiap operator memiliki

(8)

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

(9)

OPERATOR dengan

Prioritas dan Urutan Pengerjaan

KATEGORI SIMBOL NAMA PRIORITAS PENGERJAANURUTAN

  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 kelas Kiri-Kanan

. 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

(10)

KATEGORI

SIMBOL

NAMA

PRIORITAS

PENGERJAAN

URUTAN

  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

>= 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

(11)

Contoh:

Ditulis dalam bhs pemrograman C:

x = (x * y + y * z)/(x * y – y * z);

OPERATOR dengan

Prioritas dan Urutan Pengerjaan

yz

xy

yz

xy

x

1

2

3

4

5

(12)

#include <stdio.h>

#include <iostream.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);

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);

}

(13)

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,

(14)

Operator

Berdasarkan jenis operasinya, operator dalam

bahasa pemrograman C dapat dikelompokkan :

Operator Penugasan (assignment operator)

Operator Logika

(15)

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

(16)

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 dgn 3 */

(17)

Operator Aritmatika

Digunakan untuk melakukan operasi matematika

Simbol

Fungsi

Contoh

+

Penambahan

x = y + 6;

-

Pengurangan

y = x – 5;

*

Perkalian

y = y * 3;

/

Pembagian

z = x/y;

%

Modulo

A = 10 % 3;

(18)

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

(19)

Contoh:

N++; //post increment

++N; //pre increment

N--; //post 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;

(20)

Contoh:

#include <stdio.h>

int main ()

{ int x = 44; int y = 44;

++x;

printf(”x = %d\n”, x);

/* hasilnya 45 */

y++;

printf(”y = %d\n”, y);

/* hasilnya 45 */

}

(21)

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;

(22)

Operator Aritmatika

Setiap ekspesi yang berbentuk :

<Variabel> = <Variabel> <Operator><Exp>;

dapat diganti dengan :

<Variabel> <Operator> = <Exp>;

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;

(23)

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;

(24)

Operator Relasional

Digunakan untuk membandingkan dua nilai, dan

hasilnya TRUE atau FALSE

Simbol

Fungsi

= =

Sama Dengan

!=

Tidak Sama Dengan

<

Lebih Kecil Dari

>

Lebih Besar Dari

<=

Lebih Kecil atau Sama Dengan

>=

Lebih Besar atau Sama Dengan

(25)

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;

(26)

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);

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);

}

(27)

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;

(28)

#include <stdio.h>

#include <iostream.h>

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);

}

Conditional Expressions

(29)

Operator Logika

Digunakan untuk melakukan operasi logika

Table Kebenaran operator logika:

A

B

!A

A && B

A || B

True

True

False

True

True

Simbol

Fungsi

&&

AND

||

OR

(30)

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

(31)

Operator Bitwise

Simbol

Fungsi

Contoh

&

AND

A & B

|

OR

A | B;

^

XOR

A ^ B;

~

Complement 1

~A;

(32)

Operator Bitwise

Operasinya dilakukan bit per bit

Contoh:

a=24 Binernya: 011000

b=35 Binernya: 100011

(a&b) per bit hasilnya :

000000 desimalnya 0

(a | b) per bit hasilnya :

111011 desimalnya 59

(33)

Dua buah bit di-XOR-kan akan menghasilkan 1 jika

kedua bit tersebut berbeda, dan akan

menghasilkan 0 jika kedua bit tersebut sama.

Contoh:

Desimal 45 binernya: 0101101

Desimal 75 binernya: 1001011

Kemudian bit per bit di XOR kan maka

hasilnya: 1100110 atau (102 desimal).

Operator Bitwise

int A,B=45;

(34)

Dengan menggunakan operator komplemen (~),

maka setiap bit bernilai 0 akan dirubah menjadi 1

dan sebaliknya.

Contoh:

int A, B=0xC3;

A=~B; //nilai A=0x3C;

Catatan:

Penulisan bilangan hexadesimal pada

bhs pemrograman C menggunakan

awalan 0x atau 0X (nol-X).

0xC3 binernya: 1100 0011

Di-komplemenkan hasilnya:

0011 1100 atau dlm notasi

hexadecimal menjadi 3C

(35)

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 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

Catatan:

78 binernya: 00100 1110

(36)

Operator Pointer

Pointer operator terdiri dari :

& (

address of

)

* (

value of

)

(37)

Latihan

Jika semua variabel bertipe integer, maka

tentukan nilai A sbb:

B=23; C=12; D=32; E=0;

(38)

Sebutkan contoh operator yang termasuk :

1.

Unary Operator

2.

Binary Operator

3.

Ternary Operator

Sebutkan beberapa operator yang bisa

berfungsi sebagai unary dan binary operator,

dan berikan contohnya.

(39)

#include <stdio.h>

int main()

{ int x=10, y=6;

x *= 5 + y;

y += y &= x;

printf(“x = %d\ny = %d",x,y);

return(0);

}

Apakah keluaran yang akan ditampilkan di

layar monitor bila program di atas berhasil

(40)

Bagaimanakah hasil keluaran yang ditampilkan di

layar monitor dari program di atas?, Jelaskan?

#include <stdio.h>

#include <iostream.h>

int main () {

float x;

x = 7/2; printf("x = %f\n",x);

x = 7.0/2; printf("x = %f\n",x);

x = 7/2.0; printf("x = %f\n",x);

x = 7.0/2.0; printf("x = %f\n",x);

x = (float)7/2; printf("x = %f\n\n\n",x);

system("PAUSE");

return(0);

}

(41)

#include <stdio.h>

#include <iostream.h>

int main () {

int y=33, x=45;

y = y && x; printf("y = %d\n",y);

y = y & x; printf("y = %d\n",y);

y = y || x; printf("y = %d\n",y);

y = y | x; printf("y = %d\n",y);

y &= y = x; printf("y = %d\n",y);

y ^= y = x; printf("y = %d\n",y);

system("PAUSE");

return(0);

}

(42)

#include <stdio.h>

#include <iostream.h>

int main () {

int y, n;

n =10; y=++n; printf("y = %d\n",y);

n =10; y=n++ printf("y = %d\n",y);

n =10; n++ printf("n = %d\n",n);

system("PAUSE");

return(0);

}

Apakah keluaran yang akan ditampilkan di layar monitor bila

program di atas berhasil dieksekusi ?

(43)

z = (n > 0) ? f : b;

Perhatikan conditional expression diatas,

bolehkah sekiranya variabel f dan b memiliki

tipe data yang berbeda?

Referensi

Dokumen terkait

Menambah sebuah node pada doubly linked list. Menghapus sebuah node dari doubly

1.Menentukan apakah suatu bilangan termasuk bilangan prima atau bukan 2.Menampilkan 10 bilangan prima.

(node ekor) digunakan sebuah pointer yang akan menyimpan alamat dari node belakang. • Pointer ini biasanya diberi nama

4.Jika yang discan adalah operator (sebut opr1), maka  Pop 1 buah elemen teratas dari stack, simpan dalam variable var1.  Pop 1 buah elemen teratas dari stack, simpan dalam

Kegiatan menaikkan TBS ke truk menyebabkan tubuh operator pada bagian kanan memiliki skor 10 dengan kategori perlu tindakan secepatnya, sedangkan untuk tubuh bagian kiri memiliki

Sedangkan Operator adalah simbol atau karakterkhusus (misal + dan *) yang digunakan dalam suatu ekspresi untuk menghasilkan suatu nilai1. Java menyediakan sejumlah kelompok

Tidak seperti peta operasi atau peta aliran proses, maka peta tangan kiri dan tangan kanan diarahkan untuk menganalisa aktivitas kerja yang dilaksanakan seorang operator dalam

20 | P a g e Tipe Data Statis, Operator, dan Assignment Dalam pemrograman komputer, setiap nilai yang dihasilkan dari sebuah ekspresi memiliki tipe data tertentu.. Python memiliki