operator operand pemrograman c

43
Proses Sederhana 1 Pertemuan 04 Dasar Pemrograman Komputer [TKL-4002] 2010

Upload: nanda-itw-jelek

Post on 25-Jul-2015

138 views

Category:

Documents


2 download

TRANSCRIPT

Pertemuan 04 Proses Sederhana

Click to edit Master subtitle style

Dasar Pemrograman Komputer [TKL-4002] 2010

1

Learning OutcomesPada 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.

7/14/12

2

Outline Materi

Proses Sederhana (Simple Statement) Ekspresi Operator Operator Operator Operator Operator Penugasan (assignment) Logika Aritmetika Relasional Bitwise

7/14/12

33

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 Proc_na me() Aliran Keluaran

Aliran Masukan

ata u

Proses

Aliran Keluaran Perhitungan Arithmatika/Logika 7/14/12

Pemanggilan procedure/fungsi

44

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

Dala mC

Ekspresi

7/14/12

5

Ekspresi

Contoh:

cc+ 1

Dlm bhs pemrograman C dapat ditulis:

c=c+1; atau c+=1; atau Artinya (dibaca) nilai data dari variabel c ditambah ++c; atau c++;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 7/14/12

66

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 BERTINGKAT. Contoh: xy + yz x xy yz

Untuk itu setiap operator memiliki presedensi (hirarki) dan assosiativitas.7/14/12 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.

7/14/12

88

OPERATOR dengan Prioritas dan Urutan PengerjaanKATEGORI

SIMBOL :: () [] -> .

NAMA Resolusi Lingkup Kurung Elemen array Pointer ke anggota struktur atau kelas Anggota struktur, union atau kelas Pre-increment Pre-decrement Logika not Komplemen Bitwise Unary minus Unary plus Alamat Indirection Type casting Ukuran tipe data Alokasi memori Dealokasi memori

PRIORITAS 1

URUTAN PENGERJAAN Kiri-Kanan Kiri-Kanan Kiri-Kanan

Resolusi Lingkup

Kurung, indeks larik dan elemen struktur data

2

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

Operator Unary

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

3

7/14/12

99

OPERATOR dengan Prioritas dan Urutan PengerjaanKATEGORIOperator aritmatika perkalian

SIMBOL

NAMAPerkalian 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 Operator penugasan arithmatika

PRIORITAS4 5 6

URUTAN PENGERJAANKiri-Kanan Kiri-Kanan Kiri-Kanan

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

7

Kiri-Kanan

8 9 10 11 12 13 14 15

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

Operator penugasan bitwise Operator Koma

7/14/12

16

10

OPERATOR dengan Prioritas dan Urutan Pengerjaan

Contoh:

xy + yz x xy yz

Ditulis dalam bhs pemrograman C: x = (x * y + y * z)/(x * y y * z);1 3 7 8 2 4 6 5

7/14/12

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); 7/14/12 system("PAUSE");

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.

7/14/12

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

7/14/12

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.

7/14/12

15

Operator Penugasan

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

x = 2; x = y; x = 2 * y; a = sin (y);

int x = 7/2; float y = 3;

Tipe hasil operasi disesuaikan dengan tipe operand sebelah kiri./*nilai x sama dgn 3 */ /*nilai y sama dengan 3.000 */7/14/12 16

Operator Aritmatika

Digunakan untuk melakukan operasi matematikaSimbol + * / % ++ -() Fungsi Penambahan Pengurangan Perkalian Pembagian Modulo Increment Decrement Menaikan Priority Contoh x = y + 6; y = x 5; y = y * 3; z = x/y; A = 10 % 3; x++; z--; x=(2+3)*57/14/12 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) variabel7/14/12 18

Operator Aritmatika

Contoh:N++; //post increment ++N; //pre increment N--; --N; //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;

7/14/12

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

7/14/12

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); 7/14/12

21

Operator Aritmatika

Setiap ekspesi yang berbentuk : = ; dapat diganti dengan : = ; Operator ini sering disebut dengan Combined Operator. Ekspresia = a + b; a = a b; a = a * b; a = a / b; a = a % b; a=a^b;

Dapat diganti dengana += b; a -= b; a *= b; a /= b; a %= b; a ^= b; 7/14/12

22

Operator AritmatikaContoh soal: x *= y +1; artinya sama dengan :A. B. C. D.

x x x x

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

Jawab:

7/14/12

23

Operator Relasional

Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSESimbol == != < > = ?: Sama Dengan Tidak Sama Dengan Lebih Kecil Dari Lebih Besar Dari Lebih Kecil atau Sama Dengan Lebih Besar atau Sama Dengan Conditional assignment7/14/12

Fungsi

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 17/14/12 25

x = (20 == 10); //nilai x sama dgn 0

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); }7/14/12 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.7/14/12 27

Conditional ExpressionsConto h: #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 : 7/14/12 %d \n\n",abs);

28

Operator Logika

Digunakan untuk melakukan operasi logikaSimbol && || ! Fungsi AND OR NOT

Table Kebenaran operator logika:ATrue True False False

BTrue False True False

!AFalse False True True

A && BTrue False False False

A || BTrue True True False 29

7/14/12

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.

int x=5; int y=0, a , b; a = x && y; //error (hasil yg salah) //ok7/14/12 30

Contoh:

b = (x > y) && (y>=0);

Operator BitwiseSimbol& | ^ ~ >> > 3; B > 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