algoritma dan arithmatika

20
Teori Terapan dalam Latihan & Kasus Ir. Sihar, MT. T. Informatika –Fak. Teknologi Informasi Bandung – 2013 TIF301 Algoritma dan Pemrograman – I (4 sks)

Upload: staffpengajar

Post on 12-Apr-2017

326 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Algoritma dan Arithmatika

Teori Terapan dalam Latihan &

Kasus

Ir. Sihar, MT.

T. Informatika – Fak. Teknologi Informasi

Bandung – 2013

TIF301 Algoritma dan Pemrograman – I (4 sks)

Page 2: Algoritma dan Arithmatika

Daftar Pustaka

1) Davis, S. R. (2004). C++ for Dummies-5th Edition. Wiley Publishing.

2) Sedgewick, R. (2003). Algorithms-third edition. Addison-Wesley.

3) Shaffer, C. A. (2009). A Practical Introduction to Data Structuresand Algorithm Analysis. Department of Computer Science, VirginiaTech.

4) Simamora, S.N.M.P. (2002). "Diktat SK-100 Dasar Komputer danPemrograman". Dept. Sistem Komputer, Fak. Teknik. ITHB.Bandung.

5) Simamora, S.N.M.P. (2011). "Diktat Kuliah TIF301 Algoritma danPemrograman-1". Program studi Teknik Informatika. Univ. BALE.Bandung.

6) Simamora, S.N.M.P. (2013). "Diktat Kuliah Algoritma danPemrograman-I". Program studi Teknik Informatika. UTAMA.Bandung.

7) Skiena, S. S. (1998). The Algorithm Design Manual. SpringerVerlag, New York.

Page 3: Algoritma dan Arithmatika

Sebuah variabel, zK, adalah input-value by end-user diproses dengan statement

berikut: x1←2*zK;

Tuliskan algoritma dan pemrograman C++ untuk mendapatkan isi zK jika

menggunakan unary-method pada expression tersebut. Tunjukkan tampilan

jalannya program.

Kasus:

Solusi: Agar expression dapat ditransformasikan dalam bentuk unary-method, maka:

statement tersebut harus menggunakan variabel yang sama yakni zK; mengapa zK,

oleh sebab pada soal diminta isi zK. Dengan demikian, expression 2∗zK diubah

posisi menjadi: zK∗2; dan statement tersebut dapat ditulis-ulang kembali menjadi:

zK←zK∗2; ⇒ zK∗= 2; dan zK←input-value by end-user

Algoritma dan pemrograman C++: Tampilan jalannya program:

Page 4: Algoritma dan Arithmatika

Kasus: Tuliskan algoritma dan pemrograman C++, jika variabel Y1 diisikan DEC(-2) dan isi

variabel x adalah 2 kali isi Y1 untuk statement berikut: z2←x+Y1;

Tunjukkan tampilan jalannya program.

Solusi: Konstruksi-algoritma: Y1←DEC(-2);

x←2∗Y1;

z2←x+Y1;

Algoritma Pseudocode:

deklarasi var: Y1,x,z2 ∈ Float;

Y1←DEC(-2);

x←2∗Y1;

z2←x+Y1;

tampilkan z2;

Oleh sebab dalam kasus tidak ada

spesifik penggunaan bilangan

bulat atau pecahan, maka tipe-

data yang digunakan boleh int

atau float. Dalam penyelesaian

ini digunakan float dengan

alasan, tipe-data ini telah

merepresentasikan juga bilangan

bulat (int).

Algoritma dan pemrograman C++:

Tampilan jalannya program:

Alternatif-1: Alternatif-2:

Page 5: Algoritma dan Arithmatika

Sebuah variabel, x1 dan x1∈Bil.Pecahan, adalah input-value by end-user diproses

dengan statement berikut: x1←9+zK;

Tuliskan algoritma dan pemrograman C++ untuk mendapatkan isi x1 jika

menggunakan unary-method pada expression tersebut. Tunjukkan tampilan

jalannya program.

Kasus:

Solusi: Agar expression dapat ditransformasikan dalam bentuk unary-method, maka:

statement tersebut harus menggunakan variabel yang sama yakni x1; mengapa x1,

oleh sebab pada soal diminta isi x1. Dengan demikian, expression 9+x1 diubah

posisi menjadi: x1+9; dan statement tersebut dapat ditulis-ulang kembali menjadi:

x1←x1+9; ⇒ x1+=9; dan x1←input-value by end-user

Algoritma dan pemrograman C++: Tampilan jalannya program:

Page 6: Algoritma dan Arithmatika

Kasus: Sebuah variabel, t1, dikalikan dengan DEC(-7); hasilnya dikurangkan kembali dengan

nilai awal, DEC(-7), dan ditampungkan kembali ke t1. Tuliskan algoritma dan

pemrograman C++ untuk mendapatkan berapa isi t1 terakhir (ter-update) jika t1

sebelumnya didapatkan dari input-value by end-user. Tunjukkan tampilan jalannya

program.

Solusi: Konstruksi-algoritma: t1←?;

t1←t1∗DEC(-7);

t1←t1−DEC(-7);

tampilkan t1;

Algoritma dan pemrograman C++: Tampilan jalannya program:

Digunakannya tipe-data float untuk

menghindari hasil bersifat ambigue jika t1 di-

input-kan dalam bilangan pecahan

Page 7: Algoritma dan Arithmatika

Kasus: Apabila diisikan DEC(125) ke variabel y, lalu di-MOD-kan dengan DEC(-2); lalu di-

MUL-kan dengan DEC(225); hasilnya di-ADD-kan dengan DEC(2). Tuliskan algoritma

pseudocode dan C++ beserta dengan tampilan jalannya program. Khusus untuk

algoritma dan pemrograman C++ gunakan unary-method pada expression untuk

statement yang dituliskan.

Solusi: Konstruksi-algoritma: y←DEC(125);

y←y%DEC(-2);

y←y∗DEC(225);

y←y+DEC(2);

tampilkan y;

MOD: modulo

MUL: multiply

ADD: add/sum

deklarasi var: y ∈ Int;

y←125;

y←y%-2;

y←y∗225;

y←y+2;

tampilkan y;

Algoritma Pseudocode: Algoritma dan pemrograman C++:

Tampilan jalannya program:

⇒ y=DEC(125);

⇒ y=DEC(1);

⇒ y=DEC(225);

⇒ y=DEC(227);

⇒tampilkan y=DEC(227);

Page 8: Algoritma dan Arithmatika

Kasus: Berapakah nilai D, jika: D←A%B; untuk nilai A dan B berikut ini:

A←DEC(-27); B←DEC(2);

-27÷2 = -13 sisa -1, maka:

-27%2 = -1;

Algoritma dan pemrograman C++: Tampilan jalannya program:

A←DEC(28); B←DEC(-12);

28 ÷ -12 = -2 sisa 4, maka:

28 % -12 = 4;

Algoritma dan pemrograman C++: Tampilan jalannya program:

Berlaku Hukum Komutatif:

X + Z = Z + X

X ∗ Z = Z ∗ X

Page 9: Algoritma dan Arithmatika

Kasus: Berapakah nilai D, jika: D←A%B; untuk nilai A dan B berikut ini:

A←DEC(27); B←DEC(-2);

27 ÷ -2 = -13 sisa 1, maka:

27 % -2 = 1;

Algoritma dan pemrograman C++: Tampilan jalannya program:

A←DEC(-65); B←DEC(7);

-65÷7 = -9 sisa -2, maka:

-27%7 = -2;

Algoritma dan pemrograman C++: Tampilan jalannya program:

Tidak berlaku Hukum Komutatif:

X − Z ≠ Z − X

X ÷ Z ≠ Z ÷ X

Page 10: Algoritma dan Arithmatika

Kasus: Nilai awal DEC(1.5) ditampungkan ke sebuah variabel, p1, dikalikan dengan DEC(-7),

lalu ditambahkan dengan DEC(-7); hasilnya dikurangkan kembali dengan nilai awal

dan ditampungkan kembali ke p1. Tuliskan algoritma dan pemrograman C++ untuk

mendapatkan berapa isi p1 terakhir (ter-update) jika pada expression digunakan

unary-method pada statement yang dituliskan.

Solusi: Algoritma Pseudocode:

deklarasi var: p1 ∈ Float;

p1←DEC(1.5);

p1←p1∗DEC(-7);

p1←p1+DEC(-7);

p1←p1−DEC(1.5);

tampilkan p1;

Algoritma dan pemrograman C++: Tampilan jalannya program:

⇒ p1=DEC(1.5);

⇒ p1=DEC(-10.5);

⇒ p1=DEC(-17.5);

⇒ p1=DEC(-19);

⇒ tampilkan DEC(-19);

Page 11: Algoritma dan Arithmatika

Kasus: Apabila diisikan DEC(125) ke variabel y, lalu di-DIV-kan dengan DEC(-2); lalu di-MUL-

kan dengan DEC(225); hasilnya di-SUB-kan dengan DEC(2). Tuliskan algoritma

pseudocode dan C++ beserta dengan tampilan jalannya program. Khusus untuk

algoritma dan pemrograman C++ gunakan unary-method pada expression untuk

statement yang dituliskan.

Solusi: Algoritma Pseudocode:

deklarasi var: y ∈ Float;

y←DEC(125);

y←y/DEC(-2);

y←y∗DEC(225);

y←y−DEC(2);

tampilkan y;

Algoritma dan pemrograman C++: Tampilan jalannya program:

⇒ y=DEC(125);

⇒ y=DEC(-62.5);

⇒ y=DEC(-14062.5);

⇒ y=DEC(-14064.5);

⇒ tampilkan DEC(- 14064.5);

DIV: divide

MUL: multiply

SUB: substraction

Page 12: Algoritma dan Arithmatika

Kasus: Jika diketahui sebuah algoritma pseudocode berikut ini:

deklarasi var: x,G,t∈ Bil.Pecahan;

x←DEC(1.5);

t←?;

masukkan t;

G←2÷(x+(t/2);

tampilkan G;

Tuliskan algoritma dan pemrograman C++ untuk mendapatkan G, sertakan dengan

tampilan jalannya program.Solusi:

Algoritma dan pemrograman C++: Tampilan jalannya program:

Page 13: Algoritma dan Arithmatika

Solusi:

Kasus: Jika diketahui sebuah statement berikut ini: zL←A∗4; jika diasumsikan variabel A

diisikan DEC(3), selesaikan persoalan berikut ini:

a). Tuliskan algoritma dan pemrograman C++ untuk mendapatkan zL jika operator

yang digunakan ADD. b). Tuliskan algoritma dan pemroograman C++ seperti pada a)

namun expression digunakan unary-method.

a). Konstruksi-algoritma:

A*4 = A+A+A+A;

sehingga : zL← A+A+A+A;

Algoritma dan pemrograman C++:

Tampilan jalannya program:

b). Konstruksi-algoritma:

zL← A+A+A+A;

Ubah expression dalam unary-method, maka

gunakan 1-variabel yang sama; misalkan: zL

sehingga : zL← zL+zL+zL+zL;

Statement menjadi:

Algoritma dan pemrograman C++:

zL+=zL;

zL+=zL;

Page 14: Algoritma dan Arithmatika

Untuk mentransformasikan operator

MUL⇒ ADD: x+x+x+x+x;

Untuk mentransformasikan sebuah

expression menjadi dalam bentuk

unary-method, maka harus

menggunakan 1-variabel, boleh x atau

z bergantung pada statement.

Kasus: Perhatikan statement berikut: z←x∗5; jika variabel x diisikan DEC(4), tuliskan

algoritma dan pemrograman C++ untuk expression menggunakan unary-method dan

operator ADD. Tunjukkan tampilan jalannya program.

Solusi: Konstruksi-algoritma: x←DEC(4);

z←x+x+x+x+x;

Diubah expression dalam unary-method: misalkan: var: x;

x+=x;

x+=x;

x+=4;

tampilkan x;

Algoritma dan pemrograman C++:

Tampilan jalannya program:

4+4+4+4+4;

8

12

4

16

4

4

20

⇒ DEC(4)+DEC(4);

⇒ DEC(8)+DEC(8);

⇒ DEC(16)+DEC(4);

⇒ tampilkan DEC(20);

x+x+x+x+x;

Page 15: Algoritma dan Arithmatika

tidak memenuhi

Kasus: Ubahlah statement berikut dalam expression dengan unary-method:

z←a+a+a+a+a+a+a;

jika variabel a diisikan DEC(5), dengan algoritma dan pemrograman C++; tunjukkan

tampilan jalannya program.Solusi: Konstruksi-algoritma: a←DEC(5);

z←a+a+a+a+a+a+a;

Diubah expression dalam unary-method: misalkan: var: a;

a+=a;

a+=a;

a+=a;

a+=5;

tampilkan z;

⇒ DEC(5)+DEC(5);

⇒ DEC(10)+DEC(10);

⇒ DEC(20)+DEC(20);

⇒ DEC(40)+DEC(5)

⇒ tampilkan DEC(45);

Kesimpulan: expression pada

statement tsb, tidak dapat

ditransformasikan dengan

unary-method.

Algoritma dan pemrograman C++: Tampilan jalannya program:

Page 16: Algoritma dan Arithmatika

Solusi:

Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka

jelaskanlah bentuk pecahan berikut,

bahwa A adalah identilk dan sama-dengan (4 ∗ 7) + 3;

Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya

program.

7

34

7

34Konstruksi-algoritma:

7

31

7

3)74(=

+∗A=31;

B=7;

C=4;

D=3;

sehingga: 31%7 = 3;

Algoritma dan pemrograman C++:

Tampilan jalannya program:

A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan

menjadi:( )

B

DBC

B

DC

+∗=

Page 17: Algoritma dan Arithmatika

Solusi:

Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka

jelaskanlah bentuk pecahan berikut,

bahwa A adalah identilk dan sama-dengan (2 ∗ 12) + 1;

Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya

program.

12

12

12

12Konstruksi-algoritma:

12

25

12

1)122(=

+∗A=25;

B=12;

C=2;

D=1;

sehingga: 25%12 = 1;

Algoritma dan pemrograman C++:

Tampilan jalannya program:

A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan

menjadi:( )

B

DBC

B

DC

+∗=

Page 18: Algoritma dan Arithmatika

Solusi:

Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka

jelaskanlah bentuk pecahan berikut,

bahwa A adalah identilk dan sama-dengan (0 ∗ 14) + 11;

Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya

program.

14

11

14

11Konstruksi-algoritma:

14

11

14

11)140(=

+∗A=11;

B=14;

C=0;

D=11;

sehingga: 11%14 = 11;

Algoritma dan pemrograman C++:

Tampilan jalannya program:

A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan

menjadi:( )

B

DBC

B

DC

+∗=

Page 19: Algoritma dan Arithmatika

Solusi:

Kasus: Pada sebuah balok, diketahui panjang=1.5cm, lebar=5.5cm, tinggi=2cm. Tuliskan

algoritma dan pemrograman C++ untuk menghitung volume balok tersebut, dan

tunjukkan tampilan jalannya program.

Konstruksi-algoritma: Volume-balok = panjang∗lebar∗tinggi;

Vb⇒Volume-kubus;

p⇒panjang;

l⇒lebar;

t⇒tinggi;

Algoritma dan pemrograman C++: Tampilan jalannya program:

Page 20: Algoritma dan Arithmatika

Solusi:

Kasus: Tuliskan algoritma dan pemrograman C++ untuk menghitung volume kubus apabila

nilai sisi kubus dalam kelompok bilangan pecahan dan didapatkan dengan metode

input-value by end-user. Tunjukkan tampilan jalannya program.

Konstruksi-algoritma: Volume-kubus = sisi∗ sisi ∗ sisi;

Vk⇒Volume-kubus;

s⇒sisi;

Algoritma dan pemrograman C++: Tampilan jalannya program: