440 likes | 676 Views
Proses Sederhana. Pertemuan 04. Dasar Pemrograman Komputer [TKL-4002] 2010. Learning Outcomes. Pada akhir pertemuan ini , diharapkan mahasiswa akan mampu :
E N D
Proses Sederhana Pertemuan 04 Dasar Pemrograman Komputer [TKL-4002] 2010
Learning Outcomes Padaakhirpertemuanini, diharapkanmahasiswaakanmampu : • Memahami tentang proses sederhana (simple process) berupa pemanggilan procedure (fungsi) dan ekspresi serta dapat menerapkannya dalam algorithma ataupun pemrogramandengan bahasa pemrograman C.
Outline Materi Proses Sederhana (Simple Statement) Ekspresi Operator Penugasan (assignment) Operator Logika Operator Aritmetika Operator Relasional Operator Bitwise
Proses Sederhana Aliran Masukan Aliran Masukan Proses Proc_name() atau Aliran Keluaran Aliran Keluaran • Pemanggilan procedure/fungsi • Perhitungan Arithmatika/Logika • 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.:
Ekspresi Dalam C Var perhitungan A/L 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.:
Ekspresi c c + 1 Dlm bhs pemrograman C dapat ditulis: c=c+1; atau c+=1; atau ++c; atau c++; Karena tidak ada proses penyimpanan dari hasil perhitungan dari c+1 kevariabel c + 1 Contoh: Artinya (dibaca) nilai data dari variabel c ditambah dengan 1 hasilnya disimpan ke dalam variabel c. Tidak boleh:
Ekspresi Untuk itu setiapoperatormemilikipresedensi(hirarki) danassosiativitas. Komponen utama ekspresi adalah operand dan operator. Operand dapat berupa variabel, konstanta, nilai data konstan maupun fungsi. Setiap operand harus memiliki nilai data. Operator adalahsimbol yang mengolahnilaipada operand danmenghasilkansatunilaibaru. Dalam pemrograman komputer penulisan perhitungan arithmatika/logika TIDAK BOLEH BERTINGKAT. Contoh: Untuk itu
PresedensidanAssosiativitas Operator Presedensimenentukanurutanpengerjaanoperator berdasarkanprioritas. Operator yang memilikitingkatpresedensilebihtinggiakandikerjakanlebihdahulu. Assosiativitasmenentukanurutanpengerjaanoperator berdasarkanlokasinyadalamsebuahekspresi(apakahdarikiriataudarikanan). Assosiativitasberlakuuntuk operator-operator yang memilikipresedensi yang sama.
OPERATOR denganPrioritas danUrutan Pengerjaan 4 5 1 2 6 3 7 8 • Contoh: • Ditulis dalam bhs pemrograman C: • x = (x * y + y * z)/(x * y – y * z);
Precedence danAssociativity #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); }
Operator • Didasarkanatas jumlah operand, operator dapatdibedakanmenjaditigajenis, yaitu: • Unary operator • Binary operator • Ternary operator • Unary operator memerlukan1 operand, binary operator memerlukan2 operand, sedangkanternary operator memerlukan 3 operand.
Operator • Berdasarkanjenisoperasinya, operator dalambahasapemrograman C dapatdikelompokkan : • Operator Penugasan (assignment operator) • Operator Logika • Operator Aritmatika • Operator Relasional • Operator Bitwise • Operator Pointer
Operator Penugasan (assignment) • Termasuk Binary operator • Digunakanuntukmemberikannilaikepadasuatu Operand. Sintaksbb: operand1 operator operand2; • Operand1 harusberupavariabel, sedangkanoperand2 dapatsebarang operand termasukvariabeldari operand1. • Urutan pengerjaan (assosiativitas) operator penugasandarikananke kiri.
Operator Penugasan • Contoh x = 2; // konstanta x = y; // variabel lain x = 2 * y; // ekspresi a = sin (y); // fungsi • Tipehasiloperasidisesuaikandengantipe operand sebelahkiri. int x = 7/2; /*nilai x samadgn 3 */ float y = 3; /*nilai y samadengan 3.000 */
Operator Aritmatika Digunakanuntukmelakukanoperasimatematika
Operator Aritmatika • Modulo: • Simbol : % • Termasuk Binary operator • Untukmenghitungsisahasilbagi • n % 2, dapatdigunakanuntukmengujiapakah integer n bernilaigenapatauganjil • n % 2 = 0 n GENAP • n % 2 = 1 n GANJIL • Increment dan Decrement: • Simbol : ++(increment), --(decrement) • Termasuk unary operator • Menaikkan (++) danmenurunkan (--) nilaivariabeldengan 1 • Posisinyabisadidepan (pre) ataudibelakang (post) variabel
Operator Aritmatika • Contoh: N++; //post increment ++N; //pre increment N--; //post decrement --N; //pre decrement • Jika statement increment stand alone. Maka N++; atau ++N; samaartinya N=N+1; • Jika statement decrement stand alone. Maka N--; atau --N; samaartinya N=N-1;
Operator Aritmatika #include <stdio.h> int main () {intx = 44; int y = 44; ++x; printf(”x = %d\n”, x); /* hasilnya 45 */ y++; printf(”y = %d\n”, y); /* hasilnya 45 */ } Contoh:
Operator Aritmatika 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); } Jika ++n dan n++ sebagai statement yang terikatdalamekspresilainnya (sub expresi), keduanyamempunyaiarti yang berbeda. ++n -> n ditambah 1, barudiprosesterhadapekspresinya n++ -> n langsungdiprosesterhadapekspresinyatanpaditambah 1 terlebihdahulu, padasaatselesaibaru n ditambah 1
Operator Aritmatika • Setiapekspesi yang berbentuk : <Variabel> = <Variabel> <Operator><Exp>; dapatdigantidengan : <Variabel> <Operator> = <Exp>; • Operator iniseringdisebutdenganCombined Operator.
Operator Aritmatika Contohsoal: x *= y +1; artinyasamadengan : • x = x * (y + 1); • x = x * y + 1; • x = x + 1 * y; • x = (x + 1) * y; Jawab:A
Operator Relasional • Digunakanuntukmembandingkanduanilai, danhasilnya TRUE atau FALSE
Operator Relasional • TRUE dalambahasapemrograman C nilainyaTidaksamadengan NOL • FALSE dalambahasapemrograman C nilainyasamadengan NOL • Sedangkannilai TRUE yang disetoleh program C saat run time nilainyasamadengan1. • Contoh: int x; x = (20 > 10); //nilai x samadgn 1 x = (20 == 10); //nilai x samadgn 0
Operator Relasional #include<stdio.h> int main() {intx=5,y=6; if ( x == y) printf("%d samadengan %d\n",x,y); if ( x != y) printf("%d tidaksamadengan %d\n",x,y); if ( x < y) printf("%d lebihkecildaripada %d\n",x,y); if ( x > y) printf("%d lebihbesardaripada %d\n",x,y); if ( x <= y) printf("%d lebihkecilatausamadengan %d\n",x,y); if ( x >= y) printf("%d lebihbesaratausamadengan %d\n",x,y); return(0); } Contoh :
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 samaartinyadgn statement diatas: z = (a > b) ? a : b; Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a>b) bernilai salah maka z=b.
Conditional Expressions Contoh: #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); }
Operator Logika • Digunakanuntukmelakukanoperasilogika • Table Kebenaranoperator logika:
Operator Logika • Operand pada operator logikaharus 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; inty=0, a , b; a = x && y; //error (hasilygsalah) b = (x > y) && (y>=0); //ok
Operator Bitwise a=24 Binernya: 011000 b=35 Binernya: 100011 (a&b) per bit hasilnya: 000000 desimalnya0 (a | b) per bit hasilnya : 111011 desimalnya59 inta=24; intb=35; intc; c = a & b; //nilaic = 0 c = a | b; //nilaic = 59 • Operasinyadilakukan bit per bit • Contoh:
Operator Bitwise Desimal 45 binernya: 0101101 Desimal 75 binernya: 1001011 Kemudian bit per bit di XOR kanmakahasilnya: 1100110 atau (102 desimal). int A,B=45; A=B^75; //Nilai A=102 • Duabuah bit di-XOR-kanakanmenghasilkan 1 jikakedua bit tersebutberbeda, danakanmenghasilkan 0 jikakedua bit tersebutsama. • Contoh:
Operator Bitwise 0xC3 binernya: 1100 0011 Di-komplemenkanhasilnya: 0011 1100 ataudlmnotasi hexadecimal menjadi 3C Catatan: Penulisanbilanganhexadesimalpadabhs pemrograman C menggunakan awalan0x atau 0X (nol-X). • Dengan menggunakan operator komplemen (~), makasetiap bit bernilai0 akan dirubahmenjadi 1 dansebaliknya. • Contoh: intA, B=0xC3; A=~B; //nilai A=0x3C;
Operator Bitwise Catatan: 78 binernya: 00100 1110 Geserkekanan3 bit: 000001001 = 9 Geserkekiri2 bit : 010011000 = 312 • 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 A = B<<2; //nilai A=312
Operator Pointer AKAN DIBAHAS PADA TOPIK POINTER • Pointer operator terdiridari : • & (address of) • * (value of)
Latihan • Jikasemuavariabelbertipe integer, makatentukannilai A sbb: B=23; C=12; D=32; E=0; • A = B && E; • A = B & C; • A = C || D; • A = B | D; • A = B > 2; • A = B >> 2; • A = C < 3; • A = C << 3; • A = B = C; • A = B == C;
Latihan • Sebutkancontoh operator yang termasuk : • Unary Operator • Binary Operator • Ternary Operator • Sebutkanbeberapa operator yang bisaberfungsisebagai unary dan binary operator, danberikancontohnya.
Latihan #include <stdio.h> int main() {intx=10, y=6; x *= 5 + y; y += y &= x; printf(“x = %d\ny = %d",x,y); return(0); } Apakah keluaran yang akan ditampilkan dilayar monitor bila program di atas berhasil dieksekusi?
Latihan #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); } Bagaimanakah hasil keluaran yang ditampilkandilayarmonitor dari program di atas?, Jelaskan?
Latihan #include <stdio.h> #include <iostream.h> intmain () { 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); } Apakah keluaran yang akan ditampilkan dilayar monitor bila program di atas berhasil dieksekusi ?
Latihan #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 dilayar monitor bila program di atas berhasil dieksekusi ?
Latihan z = (n > 0) ? f : b; Perhatikan conditional expression diatas, bolehkahsekiranya variabel f dan b memilikitipe data yang berbeda?