Algoritma dan Pemrograman-I_konsep_statement
-
Upload
s-n-m-p-simamora -
Category
Education
-
view
72 -
download
0
Transcript of 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)
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.
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
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.
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
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;
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
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.
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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++
(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
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