proses sederhana

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

Upload: barton

Post on 22-Feb-2016

71 views

Category:

Documents


0 download

DESCRIPTION

Proses Sederhana. Pertemuan 04. Dasar Pemrograman Komputer [TKL-4002] 2010. Learning Outcomes. Pada akhir pertemuan ini , diharapkan mahasiswa akan mampu : - PowerPoint PPT Presentation

TRANSCRIPT

Judul

Proses Sederhana1Pertemuan 04

Dasar Pemrograman Komputer [TKL-4002]2010Learning 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.2Outline MateriProses Sederhana (Simple Statement)EkspresiOperator Penugasan (assignment)Operator LogikaOperator AritmetikaOperator RelasionalOperator Bitwise3Proses SederhanaDikatakan 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 fungsiPerhitungan arithmatika atau logikaDalam flow-chart digambarkan sbb.:4ProsesAliran MasukanAliran KeluaranatauProc_name()Aliran KeluaranAliran MasukanPemanggilan procedure/fungsiPerhitungan Arithmatika/LogikaEkspresiEkspresi 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.:5Var perhitungan A/LEkspresiDalam CContoh:

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

6Ekspresic + 1c c + 1Dlm 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 ke variabelKomponen 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:

7Ekspresi

Untuk itu Untuk itu setiap operator memiliki presedensi (hirarki) dan assosiativitas.Presedensi dan Assosiativitas OperatorPresedensi 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.8OPERATOR denganPrioritas dan Urutan Pengerjaan9KATEGORISIMBOLNAMAPRIORITASURUTAN PENGERJAANResolusi Lingkup::Resolusi Lingkup1Kiri-KananKurung, indeks larik dan elemen struktur data()Kurung2Kiri-Kanan[]Elemen arrayKiri-Kanan->Pointer ke anggota struktur atau kelasKiri-Kanan.Anggota struktur, union atau kelasKiri-KananOperator Unary++Pre-increment3Kanan-Kiri--Pre-decrementKanan-Kiri!Logika notKanan-Kiri~Komplemen BitwiseKanan-Kiri-Unary minusKanan-Kiri+Unary plusKanan-Kiri&AlamatKanan-Kiri*IndirectionKanan-Kiri(type)Type castingKanan-KirisizeofUkuran tipe dataKanan-KirinewAlokasi memoriKanan-KirideleteDealokasi memoriKanan-Kiri10KATEGORISIMBOLNAMAPRIORITASURUTAN PENGERJAANOperator aritmatika perkalian*Perkalian4Kiri-Kanan/Pembagian%Sisa PembagianOperator penambahan+Penambahan5Kiri-Kanan-PenguranganPergeseran bit

Geser KananOperator Relational=Lebih besar sama dgOperator Relational==Sama dengan8Kiri-Kanan!=Tidak sama denganOperator Bitwise&Bitwise AND9Kiri-Kanan^Bitwise XOR10|Bitwise OR11Operator Logika&&Logika AND12Kiri-Kanan||Logika OR13Operator Ternary?:Operator kondisi14Kanan-KiriOperator Penugasan Majemuk=, +=, -=, *=, /=, %=Operator penugasan arithmatika15Kanan-Kiri&=, ^=, |=, =Operator penugasan bitwiseOperator koma,Operator Koma16Kiri-KananOPERATOR denganPrioritas dan Urutan PengerjaanContoh:

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

11OPERATOR denganPrioritas dan Urutan Pengerjaan

1234567812#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);}

Precedence dan AssociativityOperatorDidasarkan atas jumlah operand, operator dapat dibedakan menjadi tiga jenis, yaitu : Unary operatorBinary operatorTernary operatorUnary operator memerlukan 1 operand, binary operator memerlukan 2 operand, sedangkan ternary operator memerlukan 3 operand.13OperatorBerdasarkan jenis operasinya, operator dalam bahasa pemrograman C dapat dikelompokkan :Operator Penugasan (assignment operator)Operator LogikaOperator AritmatikaOperator RelasionalOperator Bitwise Operator Pointer

14Operator Penugasan (assignment)Termasuk Binary operatorDigunakan 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.

15Operator PenugasanContohx = 2;// konstantax = y;// variabel lainx = 2 * y;// ekspresia = sin (y);// 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 */

16Operator AritmatikaDigunakan untuk melakukan operasi matematika

17SimbolFungsiContoh+Penambahanx = y + 6;-Pengurangany = x 5;*Perkaliany = y * 3;/Pembagianz = x/y;%ModuloA = 10 % 3;++Incrementx++;--Decrementz--;()Menaikan Priorityx=(2+3)*5Operator Aritmatika Modulo:Simbol : %Termasuk Binary operatorUntuk menghitung sisa hasil bagin % 2, dapat digunakan untuk menguji apakah integer n bernilai genap atau ganjiln % 2 = 0 n GENAPn % 2 = 1 n GANJIL

Increment dan Decrement:Simbol : ++(increment), --(decrement)Termasuk unary operatorMenaikkan (++) dan menurunkan (--) nilai variabel dengan 1Posisinya bisa di depan (pre) atau dibelakang (post) variabel18Contoh:N++; //post increment++N; //pre incrementN--; //post decrement--N; //pre decrementJika 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;

19Operator Aritmatika Contoh:

20#include int main () { int x = 44; int y = 44; ++x; printf(x = %d\n, x);/* hasilnya 45 */ y++; printf(y = %d\n, y);/* hasilnya 45 */}Operator Aritmatika Operator AritmatikaJika ++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

21int 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);}Operator Aritmatika22Setiap ekspesi yang berbentuk : = ; dapat diganti dengan : = ;Operator ini sering disebut dengan Combined Operator.EkspresiDapat diganti dengana = 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;Contoh soal: x *= y +1; artinya sama dengan :x = x * (y + 1);x = x * y + 1;x = x + 1 * y;x = (x + 1) * y;

Jawab: A23Operator AritmatikaOperator Relasional24Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSESimbolFungsi= =Sama Dengan!=Tidak Sama Dengan

Lebih Besar Dari=Lebih Besar atau Sama Dengan?:Conditional assignmentTRUE dalam bahasa pemrograman C nilainya Tidak sama dengan NOLFALSE dalam bahasa pemrograman C nilainya sama dengan NOLSedangkan nilai TRUE yang diset oleh program C saat run time nilainya sama dengan 1.Contoh:int x;x = (20 > 10); //nilai x sama dgn 1x = (20 == 10); //nilai x sama dgn 0

25Operator RelasionalContoh :26#includeint 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);}Operator RelasionalConditional ExpressionsConditional 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. 2728#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);}

Conditional ExpressionsContoh:Operator Logika29Digunakan untuk melakukan operasi logika

Table Kebenaran operator logika:

AB!AA && BA || BTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalseSimbolFungsi&&AND||OR!NOTOperand 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

30Operator LogikaOperator Bitwise31SimbolFungsiContoh&ANDA & B|ORA | B;^XORA ^ B;~Complement 1~A;>>Shift RightA >> 3;3; //nilai A=9A = B> 2;A = C < 3;A = C