Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Algoritma dan Pemrograman-I_konsep_statement

438 views

Published on

this article describes about statement concepts in algorithm notation

Published in: Education
  • Be the first to comment

  • Be the first to like this

Algoritma dan Pemrograman-I_konsep_statement

  1. 1. Statement dan Notasi Algoritma Dalam Basis Bilangan Ir. Sihar, MT T. Informatika – Fak. Teknik Bandung 2012 Algoritma dan Pemrograman – I (4 sks)
  2. 2. 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.
  3. 3. 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
  4. 4. 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.
  5. 5. 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 bagi Jika 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
  6. 6. Implementasi dalam algoritma dan pemrograman C++: Tampilan jalannya aplikasi pemrograman:
  7. 7. 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;
  8. 8. 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
  9. 9. 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.
  10. 10. DEC(1212) = ( ... )2 1212 ÷ 2 = 606 sisa 0 Solusi: Algoritma Matematika Informasi DEC(1212) = (100 1011 1100)2 606 ÷ 2 = 303 sisa 0 303 ÷ 2 = 151 sisa 1 151 ÷ 2 = 75 sisa 1 75 ÷ 2 = 37 sisa 1 37 ÷ 2 = 18 sisa 1 18 ÷ 2 = 9 sisa 0 9 ÷ 2 = 4 sisa 1 4 ÷ 2 = 2 sisa 0 2 ÷ 2 = 1 sisa 0 1 ÷ 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
  11. 11. DEC(1212) = ( ... )8 1212 ÷ 8 = 151 sisa 4 Solusi: Algoritma Matematika Informasi DEC(1212) = (2274)8 151 ÷ 8 = 18 sisa 7 18 ÷ 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
  12. 12. DEC(1010) = ( ... )8 1010 ÷ 8 = 126 sisa 2 Solusi: Algoritma Matematika Informasi DEC(1010) = (1762)8 126 ÷ 8 = 15 sisa 6 15 ÷ 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
  13. 13. DEC(1010) = ( ... )2 1010 ÷ 2 = 505 sisa 0 Solusi: Algoritma Matematika Informasi DEC(1010) = (1111110010)2 505 ÷ 2 = 252 sisa 1 252 ÷ 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 1 31 ÷ 2 = 15 sisa 1 15 ÷ 2 = 7 sisa 1 7 ÷ 2 = 3 sisa 1 3 ÷ 2 = 1 sisa 1 1 0 0 1 0 1 ÷ 2 = 0 sisa 1 1
  14. 14. 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,
  15. 15. 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 0 12 ÷ 8 = 1 sisa 4 1 ÷ 8 = 0 sisa 1 1 4 0
  16. 16. DEC(1212) = ( ... )16 1212 ÷ 16 = 75 sisa 12 Solusi: Algoritma Matematika Informasi DEC(1212) = (4BC)16 75 ÷ 16 = 4 sisa 11 4 ÷ 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
  17. 17. 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
  18. 18. 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 0 81 ÷ 2 = 40 sisa 1 40 ÷ 2 = 20 sisa 0 5 ÷ 2 = 2 sisa 1 2 ÷ 2 = 1 sisa 0 1 ÷ 2 = 0 sisa 1 1 00 01 0 20 ÷ 2 = 10 sisa 0 10 ÷ 2 = 5 sisa 0 01
  19. 19. 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 0 65 ÷ 2 = 32 sisa 1 4 ÷ 2 = 2 sisa 0 2 ÷ 2 = 1 sisa 0 1 ÷ 2 = 0 sisa 1 1 00 00 (1010)8 = ( ... )2 32 ÷ 2 = 16 sisa 0 16 ÷ 2 = 8 sisa 0 8 ÷ 2 = 4 sisa 0 001
  20. 20. 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 0 2 ÷ 8 = 0 sisa 2 2 0 (2121)16 = ( ... )8
  21. 21. 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
  22. 22. 1010 ÷ 16 = 63 sisa 2 Solusi: Algoritma Matematika Informasi DEC(1010) = (3F2)16 63 ÷ 16 = 3 sisa 15 3 ÷ 16 = 0 sisa 3 3 F 2 Tampilan jalannya progran:Algoritma dan pemrograman C++ DEC(1010) = ( ... )16
  23. 23. 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
  24. 24. 1212 ÷ 8 = 151 sisa 4 Solusi: Algoritma Matematika Informasi DEC(1212) = (2274)8 151 ÷ 8 = 18 sisa 7 18 ÷ 8 = 2 sisa 2 2 7 4 Tampilan jalannya progran:Algoritma dan pemrograman C++ DEC(1212) = ( ... )8 2 ÷ 8 = 0 sisa 2 2
  25. 25. 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
  26. 26. 1010 ÷ 8 = 126 sisa 2 Solusi: Algoritma Matematika Informasi DEC(1010) = (1762)8 126 ÷ 8 = 15 sisa 6 15 ÷ 8 = 1 sisa 7 7 6 2 Tampilan jalannya progran:Algoritma dan pemrograman C++ 1 ÷ 8 = 0 sisa 1 1 DEC(1010) = ( ... )8
  27. 27. 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
  28. 28. 1011 ÷ 8 = 126 sisa 3 Solusi: Algoritma Matematika Informasi DEC(1011) = (1763)8 126 ÷ 8 = 15 sisa 6 15 ÷ 8 = 1 sisa 7 7 6 3 Tampilan jalannya progran:Algoritma dan pemrograman C++ 1 ÷ 8 = 0 sisa 1 1 DEC(1011) = ( ... )8
  29. 29. 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
  30. 30. 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
  31. 31. 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++
  32. 32. (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
  33. 33. 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

×