• 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

Adapun obyek penelitian adalah Galeri elzatta di Ruko Sentra Tropodo Sidoarjo, sehingga judul penelitian yang diambil adalah “Pengaruh In-Store Shopping Environment dan

NO MAHASISWA TIM PENGUJI JUDUL TUGAS AKHIR WAKTU RUANG HARI/TGL Tanjung Winoko Pembimbing 1 : Kusumo Dradjad Sutjahjo, S.T., M.Si.. Pembimbing 2

Pameran bersama “MERTI BUMI”di kampong seni Lerep Ungaran Jawa Tengah Pameran seni rupa Ulang Tahun SMKN 3 ke 45 Di Taman Budaya Jogjakarta Pameran bersama dalam rangka Ulang

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya, serta segala sesuatu dalam hidup, sehingga penulis dapat

That is right. Begin by identifying some interesting problem, one that is already solved, and then blatantly copy the solution. Copy the solution by typing it out yourself. Get

Kelompok I terdiri dari 2 varietas (Adira IV dan Adira I) dan 1 klon (BIC 369) berproduksi lebih tinggi dari klon lokal II baik pada lokasi Pleihari maupun KP Banjarbaru..

Selain keunikan dan potensi ekonomi yang tinggi dari jenis-jenis cauliflora tersebut di atas beberapa jenis juga tennasuk kelompok tumbuhan terancam langka atau

Berangkat dari beberapa hal tersebut, maka permasalahan penelitian ini adalah sejauh mana kelembagaan pengelola KMN yaitu Pokja KMN dapat menjadi lembaga keuangan mikro di