Top Banner
Statement dan Notasi Algoritma Dalam Basis Bilangan Ir. Sihar, MT T. Informatika –Fak. Teknik Bandung 2012 Algoritma dan Pemrograman – I (4 sks)
33
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algoritma dan Pemrograman-I_konsep_statement

Statement dan Notasi Algoritma

Dalam Basis Bilangan

Ir. Sihar, MT

T. Informatika – Fak. Teknik

Bandung 2012

Algoritma dan Pemrograman – I (4 sks)

Page 2: Algoritma dan Pemrograman-I_konsep_statement

Daftar Pustaka

1) Larry L. Wear, L.L., Pinkert, J.R., Lane, W.G. Computers, An Introduction to Hardware and Software Design. McGraw-Hill. 1999.

2) Sedgewick, R., Wayne, K. Algorithm (4th Edition). Addison Wesley. 2011.

3) Simamora, S.N.M.P. “Diktat Kuliah SI101 Pengantar Teknologi Informasi”, Departemen Sistem Informasi. Fak. Teknik. ITHB. Bandung. 2002.

4) Simamora, S.N.M.P. “Diktat Kuliah IF101 Pengantar Teknik Informatika”. Departemen Teknik Informatika. Fak. Teknik. ITHB. Bandung. 2002.

5) Simamora, S.N.M.P. “Diktat Kuliah CE113 Sistem Komputer”. Program studi Teknik Komputer. Politeknik TELKOM. Bandung. 2007.

6) Simamora, S.N.M.P. “Diktat UBB105 Pengantar Teknologi Informasi”. Program studi T. Informatika, FTI. Univ. BALE Bandung. 2011.

7) Skiena, S.S. The Algorithm Design Manual. Springer. 2008.

Page 3: Algoritma dan Pemrograman-I_konsep_statement

Statement merupakan blok pemroses yang

akan dikerjakan oleh translator pada kode

pemrograman

Bentuk umum statement: B ← A+C;

Apabila C adalah konstanta (K), maka statement tsb: B ← A+K; dimana K∈ Bil.Real

B ← A+1;Misalkan:

Dalam hal efisiensi ruang-memori, hasil dapat ditampungkan kembali ke operand-data

Misalkan: A ← A+1;

Demikian juga berlaku pada operator arithmatika lain: A ← A-1;

A ← A*1;

A ← A/1;

A ← A%1;

Misalkan: K=5, maka:

Modifikasi pengerjaan operator arithmatika pada penulisan kode program dapat dilakukan

sebagai berikut:

A ← A-5;

A ← A*5;

A ← A/5;

A ← A%5;

A ← A+5;

A -=5;

A *=5;

A/=5;

A%=5;

A +=5;

dimodif

A= A-5;

A= A*5;

A = A/5;

A = A%5;

A= A+5;

dituliskan dalam kode

program

Khusus

operator

modulo, K

tdk.boleh float

Page 4: Algoritma dan Pemrograman-I_konsep_statement

Kasus: Jelaskan, apakah kedua statement ini memiliki perbedaan dan persamaan?

A ← A+1; ........................ (1)

A ← A+10; ........................ (2)

Solusi: Statemen (1) dan (2) memiliki persamaan dalam hal:

• Menggunakan operand dan jenis operator yang sama

• Konstanta tergolong dalam jenis bilangan yang sama (bukan angka/nilainya)

• Memiliki jenis modifikasi pengerjaan operator yang sama, yakni: A+=K ; dimana

K=konstanta

Statemen (1) dan (2) memiliki perbedaan dalam hal:

• Nilai pada operand-data dan operand-hasil untuk (1) dan (2) kemungkinan

berbeda atau sebaliknya

• Untuk nilai pada operand-data A yang sama, maka operand-hasil A pada (1)

selalu lebih kecil dibandingkan (2)

• Nilai K untuk Konstanta pada bentuk umum statement: A←A+K ; adalah

berbeda.

Page 5: Algoritma dan Pemrograman-I_konsep_statement

Operator: Modulus/Modulo⇒ %

Perhatikan statement berikut: C ← A ÷ B;

D ← A % B;

A⇒yang dibagi

B⇒pembagi

C⇒hasil bagi

setiap proses

pembagian

memiliki sisa

bagi/sisa hasil bagiJika diasumsikan nilai sisa hasil bagi tsb ditampungkan

ke variabel D, maka:C ← A ÷ B; dengan sisa bagi=D

sehingga:

Misalkan:

dimasukkan pada statement:

maka:

D ← A % B;

A ← 12;

B ← 2;

D = 0 Perhatikan, sisa bagi (D) tetap memiliki nilai, bukan

kosong; dalam sistem komputer, tidak dikenal nilai kosong

melainkan nilai 0.

Postulat:D ← A % B;

maka: D selalu bernilai 1 jika dan hanya

jika B=2 dan A∈ Bil. Ganjil

Page 6: Algoritma dan Pemrograman-I_konsep_statement

Implementasi dalam algoritma dan pemrograman C++:

Tampilan jalannya aplikasi pemrograman:

Page 7: Algoritma dan Pemrograman-I_konsep_statement

Penjelasan tsb menggunakan Algoritma Matematika Informasi:

tmb1 = 20;

tmbh1 += 5; ⇒ tmbh1 = tmbh1 + 5;

maka:

tmbh1 = 20 + 5;

tmbh1 = 25;

krg1 = 20;

krg1 -= 5; ⇒ krg1 = krg1 - 5;

maka:

krg1 = 20 - 5;

krg1 = 15;

kali1 = 20;

kali1 *= 5; ⇒ kali1 = kali1 * 5;

maka:

kali1 = 20 * 5;

kali1 = 100;

bagi1 = 20;

bagi1 /= 5; ⇒ bagi1 = bagi1 / 5;

maka:

bagi1 = 20 / 5;

bagi1 = 4;

m0d1 = 20;

m0d1 %= 5; ⇒ m0d1 = m0d1 % 5;

maka:

m0d1 = 20 % 5;

m0d1 = 0;

Page 8: Algoritma dan Pemrograman-I_konsep_statement

Tabel Kesetaraan antar basis bilangan:

HEX, range: 0 s.d 9 ; A s.d F OCT, range: 0 s.d 7

BIN, range: 0 s.d 1 DEC, range: 0 s.d 9

DEC OCT HEX BIN (M=8)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0000 0000

0000 0001

0000 0010

0000 0011

0000 0100

0000 0101

0000 0110

0000 0111

0000 1000

0000 1001

0000 1010

0000 1011

0000 1100

0000 1101

0000 1110

0000 1111

Jika M adalah

panjang-digit/

panjang-bit dari

sebuah bilangan,

maka: untuk A=xxxx

dan A basis bilangan

2, dikatakan

bahwa: M=4.

BIN: Basis Bilangan 2

OCT: Basis Bilangan 8

HEX: Basis Bilangan 16

DEC Basis Bilangan 10

Page 9: Algoritma dan Pemrograman-I_konsep_statement

Kasus:

Selesaikanlah persoalan berikut dengan algoritma matematika informasi:

DEC(1212) = ( ... )2

DEC(1010) = ( ... )8

0xC1C1 = ( ... )10

01212 = ( ... )10

DEC(1212) = ( ... )8

DEC(1010) = ( ... )2

(1110)8 = ( ... )10

(2121)8 = ( ... )10

01212 = ( ... )16

(1010)2 = ( ... )8

0xC1C1 = ( ... )8

01212 = ( ... )2

DEC(1212) = ( ... )16

(1010)8 = ( ... )2

(01010)8 = ( ... )10

(2121)16 = ( ... )8

Postulat:Jika suatu bilangan

dipangkatkan dengan 0, maka

hasilnya adalah 1.

Jika suatu bilangan dipangkatkan

dengan 1, maka hasilnya adalah

bilangan itu sendiri.

Jika suatu bilangan dikalikan

dengan 1, maka hasilnya adalah

bilangan itu sendiri.

Jika suatu bilangan dikalikan

dengan 0, maka hasilnya adalah 0.

Page 10: Algoritma dan Pemrograman-I_konsep_statement

DEC(1212) = ( ... )2

1212 ÷ 2 = 606 sisa 0

Solusi: Algoritma Matematika Informasi

DEC(1212) = (100 1011 1100)2

606 ÷ 2 = 303 sisa 0303 ÷ 2 = 151 sisa 1151 ÷ 2 = 75 sisa 175 ÷ 2 = 37 sisa 137 ÷ 2 = 18 sisa 118 ÷ 2 = 9 sisa 09 ÷ 2 = 4 sisa 14 ÷ 2 = 2 sisa 02 ÷ 2 = 1 sisa 01 ÷ 2 = 0 sisa 1

1 0 0 1 0 1 1 1 1 0 0

0xC1C1 = (c1c1)16 = ( ... )10

Solusi: Algoritma Matematika Informasi

0xC1C1 = c .163 + 1.162 + c.161 + 1.160

=( 12)(4096) + (1)(256) + (12)(16) + (1)(1)

= (49601 )10

Page 11: Algoritma dan Pemrograman-I_konsep_statement

DEC(1212) = ( ... )8

1212 ÷ 8 = 151 sisa 4

Solusi: Algoritma Matematika Informasi

DEC(1212) = (2274)8

151 ÷ 8 = 18 sisa 718 ÷ 8 = 2 sisa 2

2 ÷ 8 = 0 sisa 2

2 2 7 4

(1110)8 = 01110 = ( ... )10

Solusi: Algoritma Matematika Informasi

01010 = 0.84 + 1 .83 + 0.82 + 1.81 + 0.80

=(0).(4096) + ( 1)(512) + (1)(64) + (1)(8) + (0)(1)

= (584)10

Page 12: Algoritma dan Pemrograman-I_konsep_statement

DEC(1010) = ( ... )8

1010 ÷ 8 = 126 sisa 2

Solusi: Algoritma Matematika Informasi

DEC(1010) = (1762)8

126 ÷ 8 = 15 sisa 615 ÷ 8 = 1 sisa 7

1 ÷ 8 = 0 sisa 1

1 7 6 2

01212 = ( ... )10

Solusi: Algoritma Matematika Informasi

01212 = 0.84 + 1 .83 + 2.82 + 1.81 + 2.80

=(0).(4096) + ( 1)(512) + (2)(64) + (1)(8) + (2)(1)

= (650)10

Page 13: Algoritma dan Pemrograman-I_konsep_statement

DEC(1010) = ( ... )2

1010 ÷ 2 = 505 sisa 0

Solusi: Algoritma Matematika Informasi

DEC(1010) = (1111110010)2

505 ÷ 2 = 252 sisa 1252 ÷ 2 = 126 sisa 0

126 ÷ 2 = 63 sisa 0

1 1 1 1

(2121)8 = ( ... )10

Solusi: Algoritma Matematika Informasi

(2121)8 = 2 .83 + 1.82 + 2.81 + 1.80

= ( 2)(512) + (1)(64) + (2)(8) + (1)(1)

= (1105)10

63 ÷ 2 = 31 sisa 131 ÷ 2 = 15 sisa 1

15 ÷ 2 = 7 sisa 17 ÷ 2 = 3 sisa 13 ÷ 2 = 1 sisa 1

1 0 0 1 0

1 ÷ 2 = 0 sisa 1

1

Page 14: Algoritma dan Pemrograman-I_konsep_statement

01212 = (1212)8 = ( ... )16

Solusi:Mekanismenya: OCT ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke HEX

(1212)8 = ( ... )10

Solusi: Algoritma Matematika Informasi

(1212)8 = 1 .83 + 2.82 + 1.81 + 2.80

= ( 1)(512) + (2)(64) + (1)(8) + (2)(1)

= (650)10

DEC(650) = ( ... )16

650 ÷ 16 = 40 sisa 10

Solusi: Algoritma Matematika Informasi

01212 = (28A)16

40 ÷ 16 = 2 sisa 8

2 ÷ 16 = 0 sisa 2

2 8 A

Selanjutnya,

Page 15: Algoritma dan Pemrograman-I_konsep_statement

Solusi:Mekanismenya: HEX ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke OCT

0xc1c1 = (c1c1)16 = ( ... )10

Solusi: Algoritma Matematika Informasi

(c1c1)16 = c .163 + 1.162 + c.161 + 1.160

= ( 12)(4096) + (1)(256) + (12)(16) + (1)(1)

= (49601)10

DEC(49601) = ( ... )8

49601 ÷ 8 = 6200 sisa 1

Solusi: Algoritma Matematika Informasi

0xC1C1 = (140701)8

6200 ÷ 8 = 775 sisa 0

775 ÷ 8 = 96 sisa 7

7 0 1

Selanjutnya,

0xC1C1 = ( ... )8

96 ÷ 8 = 12 sisa 012 ÷ 8 = 1 sisa 4

1 ÷ 8 = 0 sisa 1

1 4 0

Page 16: Algoritma dan Pemrograman-I_konsep_statement

DEC(1212) = ( ... )16

1212 ÷ 16 = 75 sisa 12

Solusi: Algoritma Matematika Informasi

DEC(1212) = (4BC)16

75 ÷ 16 = 4 sisa 114 ÷ 16 = 0 sisa 4

4 B C

Solusi: Algoritma Matematika Informasi

(01010)8 = 0.84 + 1 .83 + 0.82 + 1.81 + 0.80

=(0).(4096) + ( 1)(512) + (0)(64) + (1)(8) + (0)(1)

= (520)10

(01010)8 = ( ... )10

Page 17: Algoritma dan Pemrograman-I_konsep_statement

Solusi:Mekanismenya: BIN ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke OCT

(1010)2 = ( ... )10

Solusi: Algoritma Matematika Informasi

(1010)2 = 1 .23 + 0.22 + 1.21 + 0.20

= ( 1)(8) + (0)(4) + (1)(2) + (0)(1)

= (10)10

DEC(10) = ( ... )8

10 ÷ 8 = 1 sisa 2

Solusi: Algoritma Matematika Informasi

(1010)2 = (12)8

1 ÷ 8 = 0 sisa 1

1 2

Selanjutnya,

(1010)2 = ( ... )8

Page 18: Algoritma dan Pemrograman-I_konsep_statement

Solusi:Mekanismenya: OCT ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke BIN

(1212)8 = ( ... )10

Solusi: Algoritma Matematika Informasi

(1212)8 = 1 .83 + 2.82 + 1.81 + 2.80

= ( 1)(64) + (2)(16) + (1)(8) + (2)(1)

= (650)10

DEC(650) = ( ... )2

650 ÷ 2 = 325 sisa 0

Solusi: Algoritma Matematika Informasi

(1212)8 = (1010001010)2

325 ÷ 2 = 162 sisa 1

1 0

Selanjutnya,

01212 = ( ... )2

162 ÷ 2 = 81 sisa 081 ÷ 2 = 40 sisa 140 ÷ 2 = 20 sisa 0

5 ÷ 2 = 2 sisa 12 ÷ 2 = 1 sisa 01 ÷ 2 = 0 sisa 1

1 00 01 0

20 ÷ 2 = 10 sisa 010 ÷ 2 = 5 sisa 0

01

Page 19: Algoritma dan Pemrograman-I_konsep_statement

Solusi:Mekanismenya: OCT ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke BIN

(1010)8 = ( ... )10

Solusi: Algoritma Matematika Informasi

(1010)8 = 1 .83 + 0.82 + 1.81 + 0.80

= ( 1)(512) + (0)(64) + (1)(8) + (0)(1)

= (520)10

DEC(520) = ( ... )2

520 ÷ 2 = 260 sisa 0

Solusi: Algoritma Matematika Informasi

(1010)8 = (1000001000)2

260 ÷ 2 = 130 sisa 0

0 0

Selanjutnya,

130 ÷ 2 = 65 sisa 065 ÷ 2 = 32 sisa 1

4 ÷ 2 = 2 sisa 02 ÷ 2 = 1 sisa 01 ÷ 2 = 0 sisa 1

1 00 00

(1010)8 = ( ... )2

32 ÷ 2 = 16 sisa 016 ÷ 2 = 8 sisa 0

8 ÷ 2 = 4 sisa 0

001

Page 20: Algoritma dan Pemrograman-I_konsep_statement

Solusi:Mekanismenya: HEX ubah terlebih dahulu ke dalam

DEC, lalu setelah itu konversikan kembali ke OCT

0x2121 = (2121)16 = ( ... )10

Solusi: Algoritma Matematika Informasi

(2121)16 = 2 .163 + 1.162 + 2.161 + 1.160

= ( 2)(4096) + (1)(256) + (2)(16) + (1)(1)

= (8481)10

DEC(8481) = ( ... )8

8481 ÷ 8 = 1060 sisa 1

Solusi: Algoritma Matematika Informasi

0x2121 = (20441)8

1060 ÷ 8 = 132 sisa 4

132 ÷ 8 = 16 sisa 4

4 4 1

Selanjutnya,

16 ÷ 8 = 2 sisa 02 ÷ 8 = 0 sisa 2

2 0

(2121)16 = ( ... )8

Page 21: Algoritma dan Pemrograman-I_konsep_statement

Kasus:

Tulislah algoritma dan pemrograman C++ untuk persoalan berikut:

DEC(1010) = ( ... )16

DEC(1010) = ( ... )8

0xC1C1 = ( ... )10

01212 = ( ... )10

DEC(1212) = ( ... )8

DEC(1011) = ( ... )8

(01010)8 = ( ... )10

(2121)8 = ( ... )10

0xABC = ( ... )10 0xC1C1 = ( ... )8 (01010)16 = ( ... )10

Jika dituliskan 01010 maka diasumsikan

basis bilangan 2; biasanya jika merupakan

basis bilangan 8, agar tdk ‘confuse’

dituliskan (01010)8

Postulat:

(10110)8 = ( ... )16

Page 22: Algoritma dan Pemrograman-I_konsep_statement

1010 ÷ 16 = 63 sisa 2

Solusi: Algoritma Matematika Informasi

DEC(1010) = (3F2)16

63 ÷ 16 = 3 sisa 153 ÷ 16 = 0 sisa 3

3 F 2

Tampilan jalannya progran:Algoritma dan pemrograman C++

DEC(1010) = ( ... )16

Page 23: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

0xC1C1 = ( ... )10

(C1C1)16 = 12 .163 + 1.162 + 12.161 + 1.160

= (12)(4096) + (1)(256) + (12)(16) + (1)(1)

= (49601)10

Digunakan tipe data long int, oleh sebab memiliki range

lebih lebar dibandingkan int, yakni: -2147483648 s.d

+2147483647 ; bandingkan int dengan range: -32768 s.d

+32767

Page 24: Algoritma dan Pemrograman-I_konsep_statement

1212 ÷ 8 = 151 sisa 4

Solusi: Algoritma Matematika Informasi

DEC(1212) = (2274)8

151 ÷ 8 = 18 sisa 718 ÷ 8 = 2 sisa 2

2 7 4

Tampilan jalannya progran:Algoritma dan pemrograman C++

DEC(1212) = ( ... )8

2 ÷ 8 = 0 sisa 2

2

Page 25: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

(1010)8 = 1 .83 + 0.82 + 1.81 + 0.80

= (1)(512) + (0)(64) + (1)(8) + (0)(1)

= (520)10

Cukup menggunakan tipe data int dengan alasan range:

-32768 s.d +32767

(01010)8 = ( ... )10

Page 26: Algoritma dan Pemrograman-I_konsep_statement

1010 ÷ 8 = 126 sisa 2

Solusi: Algoritma Matematika Informasi

DEC(1010) = (1762)8

126 ÷ 8 = 15 sisa 615 ÷ 8 = 1 sisa 7

7 6 2

Tampilan jalannya progran:Algoritma dan pemrograman C++

1 ÷ 8 = 0 sisa 1

1

DEC(1010) = ( ... )8

Page 27: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

(1212)8 = 1 .83 + 2.82 + 1.81 + 2.80

= (1)(512) + (2)(64) + (1)(8) + (2)(1)

= (650)10

Cukup menggunakan tipe data int dengan alasan range:

-32768 s.d +32767

01212 = ( ... )10

Page 28: Algoritma dan Pemrograman-I_konsep_statement

1011 ÷ 8 = 126 sisa 3

Solusi: Algoritma Matematika Informasi

DEC(1011) = (1763)8

126 ÷ 8 = 15 sisa 615 ÷ 8 = 1 sisa 7

7 6 3

Tampilan jalannya progran:Algoritma dan pemrograman C++

1 ÷ 8 = 0 sisa 1

1

DEC(1011) = ( ... )8

Page 29: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

(2121)8 = 2 .83 + 1.82 + 2.81 + 1.80

= (2)(512) + (1)(64) + (2)(8) + (1)(1)

= (1105)10

Cukup menggunakan tipe data int dengan alasan range:

-32768 s.d +32767

(2121)8 = ( ... )10

Page 30: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

(ABC)16 = A.162 + B.161 + C.160

= (10)(256) + (11)(16) + (12)(1)

= (2748)10

Cukup digunakan tipe data int dengan alasan range: -32768

s.d +32767

0xABC = ( ... )10

Page 31: Algoritma dan Pemrograman-I_konsep_statement

0xc1c1 = (c1c1)16 = ( ... )10

Solusi: Algoritma Matematika Informasi

(c1c1)16 = 12 .163 + 1.162 + 12.161 + 1.160

= (12)(4096) + (1)(256) + (12)(16) + (1)(1)

= (49601)10

DEC(49601) = ( ... )8

49601 ÷ 8 = 6200 sisa 1

Solusi: Algoritma Matematika Informasi

0xc1c1 = (140701)8

6200 ÷ 8 = 775 sisa 0

775 ÷ 8 = 96 sisa 7

7 0 1

Selanjutnya,

96 ÷ 8 = 12 sisa 0

12 ÷ 8 = 1 sisa 4

4 0

0xC1C1 = ( ... )8

1 ÷ 8 = 0 sisa 1

1

Tampilan jalannya progran:Algoritma dan pemrograman C++

Page 32: Algoritma dan Pemrograman-I_konsep_statement

(10110)8 = ( ... )10

Solusi: Algoritma Matematika Informasi

(10110)8 = 1 .84 + 0 .83 + 1.82 + 1.81 + 0.80

= (1)(4096) + (0)(256) + (1)(8) + (1)(1)

= (4168)10

DEC(4168) = ( ... )16

4168 ÷ 16 = 260 sisa 8

Solusi: Algoritma Matematika Informasi

(10110)8 = (1048)16

260 ÷ 16 = 16 sisa 4

0 4 8

Selanjutnya,

16 ÷ 16 = 1 sisa 0

1

1 ÷ 8 = 0 sisa 1

Tampilan jalannya progran:Algoritma dan pemrograman C++

(10110)8 = ( ... )16

Page 33: Algoritma dan Pemrograman-I_konsep_statement

Solusi: Algoritma Matematika Informasi

Tampilan jalannya progran:Algoritma dan pemrograman C++

(1010)16 = 1.163 + 0.162 + 1.161 + 0.160

= (1)(4096) + (0)(256) + (1)(16) + (0)(1)

= (4112)10

Untuk mengantisipasi pengolahan data yang kemungkinan

mengalami overflow, maka kadangkala disarankan langsung

menggunakan tipe data dengan range yang lebar misalkan

long int dengan alasan range: -2147483648 s.d

+2147483647

(01010)16 = ( ... )10