• Tidak ada hasil yang ditemukan

Penulisan Kondisi Kesamaan Variabel dan LiteralEkspresi

N/A
N/A
Protected

Academic year: 2018

Membagikan "Penulisan Kondisi Kesamaan Variabel dan LiteralEkspresi"

Copied!
6
0
0

Teks penuh

(1)

Algorit me dan Pemrograman

Kuliah #3 Ekspresi, Operat or, dan Condit ional St at em ent

Ekspresi dan Operator

Cont oh ekspresi:

a

,

x

,

a+b

,

a*b

,

-x

,

5

,

a<b

,

a==b

,

7==c

Ekspresi dapat melibat kan operat or –Cont oh: a+b, a*b, -x, a<=b, a==b, 7==c

Jenis operat or berdasarkan jumlah operand:

–Unary (sat u operand), misal: –a –Binary (dua operand), misal: a+b –Ternary (t iga operand), misal x ? y : z

Set iap ekspresidievaluasiunt uk

menghasilkan suat u nilai

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

a + b

oper at or

oper an d

Jenis Operator C

Arit m et ika

Logika

Penugasan

Increment, decrement

Select ion cont rol

condit ional stat ement –if

–sw it ch..case

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Operator Arit met ika

Operasi Operator Ekspresi C

Penjum lahan + f + 7

Pengurangan - p - c

Perkalian * b * m

Pem bagian / x / y

M odulo % r % s

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Operat or LOGIKA

Aljabar C Cont oh Art i = == (x == y) x sama dengan y ?

 != (x != y) x t idak sama dengan y ? > > (x > y) x lebih besar dari y ? < < (x < y) x lebih kecil dari y ?

 >= (x >= y) x lebih besar or samadengan y ?

 <= (x <= y) x lebih kecil or samadengan y ?

 & & ((x>0) & & (x<3)) 0 < x < 3

 | | ((x<0) | | (x>3)) x < 0 at au x > 3 ~ ! ! (x < 0) x t idak lebih kecil dari 0

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Hasil ekspresi logika: – TRUE, int bernilai t idak NOL (0)

– FALSE, int bernilai NOL

Operasi Logika

Tabel kebenaran operasi x & & y

Tabel kebenaran operasi x | | y

De M organ’s Law

–! (x & & y) == (! x | | ! y) –! (x | | y) == (! x & & ! y)

(2)

Lat ihan #1

#include <stdio.h>

int main() { int n;

scanf("%d", &n); if (n = 0)

printf("NOL"); else

printf("TIDAK NOL"); return 0;

}

• Tentukan output jika diberikan input 0.

• Tentukan output jika diberikan input 5.

• Apa yang dapat disimpulkan dari kasus ini?

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Penulisan Kondisi Kesamaan Variabel

dan Literal/ Ekspresi

Disarankan m enggunakan ungkapan lit eral == variabel

ekspresi == variabel m isalnya

5 == x (a + b) == y

agar kesalahan penget ikan “ ==“ m enjadi “ =“ t erdet eksi sebagai kesalahan oleh compiler

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Evaluasi Ekspresi Logika

Ekspresi (x+5<10 | | y>x+3 & & z-2>3) –Jika x = 2, y = 4, z = 2; hasil evaluasi:

•x+5<10 → TRUE

•y>x+3 → FALSE •z-2>3 → FALSE

– (TRUE || FALSE && FALSE) – (TRUE || FALSE)

– TRUE

Operator Penugasan (

Assignment

)

Tanda =

Ada dua bagian yang dipisahkan =

–L-Value : alam at lokasi m em ori t em pat nilai

disim pan

–R-Value : nilai yang disim pan

Cont oh:

–a = 5;

–b = a = 10;

–c = c + 5;

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Compound Assignment Operator

M enggabungkan operat or penugasan dengan operat or arit m et ika.

Cont oh:

–c = c + 1 dapat dit ulisc += 1

–x = x * 2 dapat dit ulisx * = 2

Operat or yang dapat digunakan adalah +, -, * , / , dan %

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Operator Arti Contoh

+= Penjumlahan Bilangan +=2Bilangan = Bilangan+2

-= Pengurangan Nilai -=10Nilai = Nilai - 10

*= Perkalian Angka *= 3Angka = Angka * 3

/= Pembagian Jumlah /= 5 Jumlah = Jumlah/5

%= Sisa hasil bagi Sisa %= 2Sisa = Sisa % 2

Contoh Penggunaan

(3)

Increment & Decrement

Increment: ++

Decrement:

--• Ada dua t ipe:

Pre-increment/ decrement, m isalnya++c, --d

Nilai ekspresi adalah nilai setelah dilakukan operasi increm ent/ decrem ent

Post-increment/ decrement, m isalnyac++,

d--Nilai ekspresi adalah nilai sebelum dilakukan operasi increm ent/ decrem ent

• Cont oh (m isal nilai aw ala = 5, b = 8)

–Nilai ekspresi a++adalah5, tetapi nilai a setelahnya m enjadi 6 –Nilai ekspresi ++badalah9, dan nilai b setelahnya tetap 9

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Catatan

Jangan lakukan lebih dari sat u perubahan nilai sat u variabel dalam sat u evaluasi

–Hasil t idak t erdefinisikan dalan st andar C

Cont oh yang melanggar st andar (t akt erdefinisi): i = ++i + 1;

a[i++] = i;

Cont oh yang t idak melanggar st andar: i = i + 1;

a[i] = i;

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Lat ihan #2

#include <stdio.h>

int main() {

int n;

scanf("%d", &n);

if (n++ = 0) printf("%d", n);

return 0;

}

Tent ukan input yang menghasilkan out put .

Bagaimana jika menggunakan operat or

increment / decrement lain (pre/ post )?

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Select ion Cont rol St ruct ure

Program akanmemilihsat u at au lebih st at ement unt uk diproses at au t idak diproses berdasarkan kondisi t ert ent u.

–Termasuk percabangan (branching)

Kondisi dinyat akan sebagai ekspresi yang

mengendalikan arah percabangan.

Pernyat aan yang digunakan disebut condit ional st at ement:

–Pernyat aan if

–Pernyat aan sw it ch … case

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Ekspresi … ? ... : …

Sint aks: (kondisi ? ekspr1 : ekspr2 ) –Jika kondisi bernilai benar, maka hasil evaluasi

ekspresi t ersebut adalah ekspr1.

–Selainnya, hasil evaluasi ekspresi t ersebut adalah

ekspr2.

Cont oh:

n1 += ( (i < 10) ? 3 : 5 ) set ara dengan:

if (i < 10) n1 += 3; else n1 += 5;

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Condit ional statement

: if

Bent uk umum:

if (kondisi)

simple or compound statement;

at au

if (kondisi)

simple or compound statement;

else

simple or compound statement;

(4)

Condit ional statement

: if

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

k on d isi

Diagram alir unt uk if……..

Diagram alir unt uk if……..else…….

Lat ihan #3

#include <stdio.h>

int main(){

int a, b;

scanf("%d %d", &a, &b);

if (a<b)

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR - 15 15

scanf("%d %d", &a, &b);

if (a<b) {

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Lat ihan #5

#include <stdio.h>

int main(){ int a, b;

scanf("%d %d", &a, &b); if (a<b) {

printf("%d\n", b-a); printf ("a lebih kecil"); }

else {

printf("%d\n", a-b); printf ("a lebih besar"); }

return 0; }

Out put program jika input 5 20:

Out put program jika input 20 5:

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

1 5 a lebih kecil 1 5 a lebih besar

Condit ional statement

:

Nested

if

• St rukt ur seleksi if yang bercabang dengan banyak kondisi.

• Cont oh, berapa nilai b jika diberikan input 12?

scanf("%d", &a); if (a<5)

b = 1; else if (a<10)

b = 2; else if (a<15)

b = 3; else

b = 4;

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Struktur

else if

:

(5)

if(syarat)

Condit ional statement

: switch … case

• Struktur dengan banyak kondisi yang berbentuk ekspresi logika kesamaan nilai integer.

• Perhatikan potongan program berikut (apa yang dilakukan?)

int bil, hasil; scanf("%d", &bil);

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Condit ional statement

: switch … case

Bent uk um um st rukt ur sw it ch … case

switch(kondisi){

case (konst_ekspr1): S1; S2; …; break;

case (konst_ekspr2): S3; S4; …; break;

...

default: S5; S6; …; break; }

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR kondisi dan konst_ekspr berjenis integer

(short, int, long, long long)

Condit ional statement

: switch … case

M engubah if ke sw itch … case:

int bil, hasil; scanf("%d", &bil); hasil = bil % 3; switch (hasil) {

case 0: printf("NOL\n"); break; case 1: printf("SATU\n");break; default: printf("DUA\n"); break; }

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

#include <stdio.h> int main() {

short int hari;

printf("Isikan nomor hari (1 = Ahad s/d 7 = Sabtu): "); scanf("%hd", &hari);

switch (hari) { case 1:

case 7: printf("Akhir pekan!\n"); break;

case 2: case 3: case 4: case 5:

case 6: printf("Hari kerja!\n"); break; default: printf("Nomor hari tidak valid!\n");

break;

} return 0;

} DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

Cont oh program dengan swit ch….case….

Precedence

dan

Associat ivit y

Berapa hasil evaluasi 4 * 4 + 4 * 4 + 4 – 4 * 4 ? PRECEDENCE

• M enent ukan urut an operasi dari operat or-operat or dalam ekspresi m ajem uk.

• Operat or dengan t ingkat precedence lebih t inggi akan diproses lebih dahulu.

ASSOCIATIVITY

• M enent ukan arah evaluasi bila ada dua at au lebih operat or dengan t ingkat precedence yang sam a.

• Dilam bangkan dengan left -t o-right (LR) at au right -t o-left (RL).

(6)

Ope ra t or Pre ce de nce Cha rt( h t t p: / / w w w.sw an son t ec.com / sopc.h t m l)

Operator Type Operator Associativity

Primary Expression Operators () [] . -> expr++ expr-- left-to-right Unary Operators * & + - ! ~ ++expr--expr

(typecast) sizeof() right-to-left

Binary Operators

* / %

left-to-right

+ ->> << < > <= >= == != & ^ | && ||

Ternary Operator ?: right-to-left

Assignment Operators = += -= *= /= %= >>= <<= &=

^= |= right-to-left

Comma , left-to-right

Contoh Precedence dan Associativity

Y = 2 * 5 * 5 - 3 * 5 + 7;

Evaluasi:

Y = 2 * 5 * 5 - 3 * 5 + 7; = 10 * 5 - 3 * 5 + 7; = 50 - 3 * 5 + 7; = 50 - 15 + 7; = 35 + 7; = 42;

Lat ihan #6

Deskripsi:

Air bersih LAYAK diminum jika memenuhi dua syarat , yait u kadar besi kurang dari p, dan kadar bakt eri coli kurang dari q. Jika t idak memenuhi kedua syarat t ersebut , air dikat akan TIDAK LAYAK unt uk diminum.

Implement asi dalam program:

if ((besi>p) && (coli>q))

printf("TIDAK LAYAK");

else

printf("LAYAK");

BEN ARKAH ??

Lat ihan #7 - Out put program

#include <stdio.h>

int main() {

int a = 10;

printf("\n%d", a += 3); printf("\n%d", a -= 3); printf("\n%d", a *= 3); printf("\n%d", a /= 3); printf("\n%d", a %= 3);

printf("\n%d", a); printf("\n%d", ++a); printf("\n%d", a); printf("\n%d", a++); printf("\n%d", a); printf("\n%d", --a); printf("\n%d", a); printf("\n%d", a--); printf("\n%d", a);

return 0; }

DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR

//13 //10 //30 //10 //1 //1 //2 //2 //2 //3 //2 //2 //2 //1

Lat ihan #8

M isalkan t erdapat t iga variabel bert ipe int , yait u

a= -15

,

b= -10

,

c= -5

.

Berapa nilai ekspresi

a<b<c

? True/ False ?

Berapa nilai

(++b + c--)

?

Referensi

Dokumen terkait

Thus, the normal developmental increases in stomach acid and gastrin secretion, and in certain enzyme activities (chymosin, pepsin, amylase, lactase, aminopeptidases), are stimulated

Berdasarkan Penetapan Pemenang Pelelangan Nomor : 229/ULP-POKJA.JK-1/VI/2016 Tanggal 06 Juni 2016 dan Berita Acara Hasil Pelelangan Nomor : 228/ULP-POKJA.JK-1/VI/2016 Tanggal 27

Alor Tahun Anggaran 2016 melalui Surat Penetapan Pemenang Pelelangan Umum Nomor: 318.ULP/POKJA KONST/VI/2015 tanggal 06 Juni 2016 telah menetapkan Pemenang Pelelangan Umum

Merujuk pada pengumuman nominator sebagaimana yang tertuang dalam Surat Direktur Jenderal Pendidikan Islam Nomor 825/Dj.I/Dt.I.IV/5/PP.0.9/5/2016, kami mengundang nama- nama

Dengan ini diberitahukan bahwa setelah diadakan penelitian oleh Kelompok Kerja Konstruksi IV (empat) ULP Kabupaten Lampung Tengah menurut ketentuan – ketentuan yang berlaku,

Untuk keperluan pembuktian kualifikasi, diharapkan saudara membawa semua data dan informasi yang ASLI atau dokumen yang DILEGALISIR oleh pihak yang berwenang sesuai

sebagaimana telah diubah dengan Peraturan Pemerintah Nomor 34 Tahun 2005, perlu menetapkan Wilayah Kerja Gas Metana Batubara, Bentuk Kontrak Kerja Sama, dan Ketentuan Pokok Kerja

Barisan aritmetika bertingkat adalah barisan bilangan yang tidak memiliki beda tetap, tetapi apabila beda itu dijadikan barisan bilangan, demikian seterusnya maka pada suatu saat