Upcoming SlideShare
Loading in …5
×

# Information Mathematics Theory

2,345 views
2,267 views

Published on

this article describes math theory in computer systems include integer number, number systems, conversion algorithm and technique between number systems, boolean algebra, logical gate, etc.

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

No Downloads
Views
Total views
2,345
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
98
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Information Mathematics Theory

1. 1. MATEMATIKA INFORMASI Ir. SNMP Simamora, MT. Laboratorium Sistem Komputasi & Jaringan Akses Reference: Simamora, SNMP, “Diktat Kuliah IF-202 Organisasi Komputer”, Departemen Sistem Informasi, FT- ITHB, Bandung, 2003. Simamora, SNMP, “Diktat Kuliah Sistem Mikroprosesor”, Jurusan Ilmu Komputer, F-MIPA, UNAI, Bandung, 2007. Sistem Basis Bilangan Bahasa alamiah (bahasa manusia) mengenal sistem bilangan dalam basis 10 (disebut Desimal); sedangkan bahasa mesin mengenal sistem bilangan dalam tiga basis, yakni: Basis Bilangan 2 (Binary-digit, biasanya digunakan dalam komunikasi data), Basis Bilangan 8 (Octadecimal, biasanya digunakan dalam pengalamatan di memori), dan Basis Bilangan 16 (Hexadecimal, biasanya digunakan dalam pengalamatan di memori dan urusan pengkodean warna). Desimal: 0 s.d 9 Misalkan: 212110 = 2-ribuan + 1-ratusan + 2-puluhan + 1-satuan = 2000 + 100 + 20 + 1 = 2.103 + 1.102 + 2.101 + 1.100 Biner: 0 s.d 1 Misalkan: 11 1000 0100 10012 = 1.2 + 0 + 0 + 0 + 0 + 1.26 + 0 + 0 + 1.23 + 0 + 0 + 1.20 = 2048 + 64 + 8 + 1 = 212110 212110 = (...)2 Solusi: 2121 ÷ 2 = 1060 sisa 1 ⇒ Least Significant Bit (LSB) 1060 ÷ 2 = 530 sisa 0 530 ÷ 2 = 265 sisa 0 265 ÷ 2 = 132 sisa 1 132 ÷ 2 = 66 sisa 0 66 ÷ 2 = 33 sisa 0 33 ÷ 2 = 16 sisa 1 16 ÷ 2 = 8 sisa 0 8 ÷ 2 = 4 sisa 0 4 ÷ 2 = 2 sisa 0 2 ÷ 2 = 1 sisa 0 1 ÷ 2 = 0 sisa 1 ⇒ Most Significant Bit (MSB) Dituliskan: 1000 0100 10012 Oktal: 0 s.d 7 (biasanya dituliskan dengan premiks ‘0’) Misalkan: 41118 = (…)10 = 4.83 + 1.82 + 1.81 + 1.80 = 2048 + 64 + 8 + 1 = 212110 212110 = (...)8 Solusi: 2121 ÷ 8 = 265 sisa 1 ⇒ Least Significant Digit (LSD) 265 ÷ 8 = 33 sisa 1 1
2. 2. 33 ÷ 8 = 4 sisa 1 4 ÷ 8 = 0 sisa 4 ⇒ Most Significant Digit (MSD) Dituliskan: 04111 atau 41118 Dalam script JavaScript bisa dituliskan sebagai berikut: oktal.htm <script language=JavaScript> document.writeln(04111); </script> Heksal: 0 s.d 9 dilanjutkan A s.d F (biasanya dituliskan dengan premiks ‘0x’) Misalkan: 84916 = (…)10 = 8.162 + 4.161 + 9.160 = 2048 + 64 + 9 = 212110 212110 = (...)16 Solusi: 2121 ÷ 16 = 132 sisa 9 ⇒ Least Significant Digit (LSD) 132 ÷ 16 = 8 sisa 4 8 ÷ 16 = 0 sisa 8 ⇒ Most Significant Bit (MSB) Dituliskan: 0x849 atau 84916 Dalam script JavaScript bisa dituliskan sebagai berikut: heksal.htm <script language=JavaScript> document.writeln("Hasilnya = ",0x849); </script> Contoh: - Tentukan nilainya! 101101102 = (...)16 = (...)8 Cara-1: -cara konvensional, ubah terlebih dahulu ke desimal, lalu selanjutnya dikonversikan ke basis bilangan yang ditanyakan. 101101102 = 1.27 + 0 + 1.25 + 1.24 + 0 + 1.22 + 1.21 + 0 = 128 + 32 + 16 + 4 + 2 = 18210 18210 = (...)16 Solusi: 182 ÷ 16 = 11 sisa 6 ⇒ Least Significant Digit (LSD) 11 ÷ 16 = 0 sisa 11 ⇒ Most Significant Digit (MSD) ingat! 11 dituliskan dalam heksal menjadi B maka didapatkan: 0xB6 atau b616 18210 = (...)8 Solusi: 182 ÷ 8 = 22 sisa 6 ⇒ Least Significant Digit (LSD) 22 ÷ 8 = 2 sisa 6 2 ÷ 8 = 0 sisa 2 ⇒ Most Significant Digit (MSD) Dituliskan: 0266 atau 2668 Cara-2: -gunakan Algoritma BCD8421 Algoritma BCD8421 digunakan untuk memudahkan pengkonversian antar bahasa mesin, khususnya dari biner ke oktal atau heksal. Dasar utama Algoritma BCD8421 adalah pemilahan setiap digit sebuah bit ke dalam partisi-partisi deret biner. Jika dikonversikan ke dalam heksal, maka partisi dirangkai sepanjang 4 digit (24), sedangkan jika dikonversikan ke dalam oktal, maka partisi dirangkai sepanjang 3 digit (23). Contoh: • Heksal: 101101102 = 1011 0110 partisi-y = 1011 = 1.23 + 0 + 1.21 + 1.20 = 11 = B 2
3. 3. partisi-z = 0110 = 0 + 1.22 + 1.21 + 0 = 6 maka dituliskan menjadi: B616 atau b616 atau 0xb6 • Oktal: 101101102 = 010 110 110 (bila kosong, isikan dengan 0) partisi-y = 110 = 1.22 + 1.21 + 0 = 6 partisi-z = 110 = 1.22 + 1.21 + 0 = 6 partisi-w = 010 = 0.22 + 1.21 + 0 = 2 maka dituliskan menjadi: 2668 atau 02668 BCD (Binary-Coded-Decimal) 8421 Sistem Pengkodean ini sepintas mirip dengan kode biner, padahal sama sekali tidak sama (tidak senilai), karena pada BCD8421, setiap digit bit, dilakukan partisi-partisi bit sepanjang 4digit setiap satu kelompok partisi. Seperti: … abcd abcd abcd ; dimana setiap digit biner terkodekan secara desimal. Misalkan: 101101102 = (...)BCD8421 Langkah-1: konversikan ke dalam desimal 101101102 = 128 + 32 + 16 + 4 + 2 = 18210 Langkah-2: setiap digit desimal independent terhadap digit lain Desimal-nya 182 Dilakukan partisi digit: 1 8 2 Langkah-3: nyatakan digit desimal dalam biner dalam format penjumlahan: 8421 1 = 0.8 + 0.4 + 0.2 + 1.1 = 0001 8 = 1.8 + 0.4 + 0.2 + 0.1 = 1000 2 = 0.8 + 0.4 + 1.2 + 0.1 = 0010 Langkah-4: didapatkan hasil dalam kode BCD8421 18210 = (0001 1000 0010)BCD8421 Tabel Konversi: DEC BIN OCT HEX BCD8421 0 00000000 0 0 0000 0000 1 00000001 1 1 0000 0000 2 00000010 2 2 0000 0000 3 00000011 3 3 0000 0000 4 00000100 4 4 0000 0000 5 00000101 5 5 0000 0000 6 00000110 6 6 0000 0000 7 00000111 7 7 0000 0000 8 00001000 10 8 0000 0000 9 00001001 11 9 0000 0000 10 00001010 12 A 0001 0000 11 00001011 13 B 0001 0001 12 00001100 14 C 0001 0010 13 00001101 15 D 0001 0011 14 00001110 16 E 0001 0100 15 00001111 17 F 0001 0101 Gerbang Logika Rangkaian Logika dikelompokkan menjadi dua kelompok besar, yaitu: • Rangkaian Logika Kombinasional ⇒ keluaran komponen gerbang logika ditentukan oleh kombinasi masukan dari minimal dua masukan. • Rangkaian Logika Sekuensial ⇒ keluaran sirkuit ditentukan oleh runtunan nilai masukan dari sejumlah susunan kombinasi gerbang logika yang ditentukan. 3
4. 4. Klasifikasi gerbang logika: AND : nilai keluaran bernilai 1 (TRUE) jika dan hanya jika kedua nilai masukan bernilai 1 (TRUE). Dalam Tabel Kebenaran disimbolkan: • Dalam rangkaian logika disimbolkan: Tabel Kebenaran Logika AND A B A B 0 0 0 0 1 0 1 0 0 1 1 1 OR : nilai keluaran bernilai 1 (TRUE) jika dan hanya jika salah satu nilai masukan bernilai 1 (TRUE). Dalam Tabel Kebenaran disimbolkan: + Dalam rangkaian logika disimbolkan: Tabel Kebenaran Logika OR A B A + B 0 0 0 0 1 1 1 0 1 1 1 1 NOT : nilai keluaran adalah kebalikan dari nilai masukan. Dalam Tabel Kebenaran disimbolkan: ∼ atau bila A adalah sejumlah bit data, maka jika di-NOT-kan disimbolkan: A Dalam rangkaian logika disimbolkan: Tabel Kebenaran Logika NOT A B A B 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 XOR (eXclusive-OR): nilai keluaran bernilai 1 (TRUE) jika dan hanya jika jumlah bit masukan kelipatan ganjil; dimana kelipatan genap dimulai dari bilangan 0,2,4,dst... Dalam Tabel Kebenaran disimbolkan: ⊕ Dalam rangkaian logika disimbolkan: Tabel Kebenaran Logika X-OR A B A +B 0 0 0 0 1 1 1 0 1 1 1 0 4
5. 5. Sistem Komputer modern menggunakan sistem pengkodean ASCII (American Standard Code for Information Interchange) 8bit; artinya, setiap 1 byte data direpresentasikan dalam 8 bit. ASCII dikembangkan oleh ANSI (American National Standard Institute) dengan tujuan membuat kode binary yang standar. Misalkan: A: 0010 1101 (4510) B: 0000 1100 (1210) maka, Tabel Kebenaran: A B A•B A+B A⊕B A B 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 Dibuktikan dengan kode JavaScript sebagai berikut: Untuk: A•B logic_AND.htm <script language=JavaScript> A=45; B=12; document.writeln("A AND B = ", A&B); </script> Untuk: A+B logic_OR.htm <script language=JavaScript> A=45; B=12; document.writeln("A OR B = ", A|B); </script> Untuk: A⊕B logic_XOR.htm <script language=JavaScript> A=45; B=12; document.writeln("A XOR B = ", A^B); </script> Untuk: A Bila diterapkan negasi (gerbang logika NOT) pada sebuah bilangan desimal, itu berarti menerapkan operasi komplemen-1 pada bilangan tersebut. Jadi, bila A adalah sebuah variabel yang diisikan oleh DEC45, dan A ditetapkan ~A atau A , maka hasil ~A atau A dapat dicari dengan menggunakan Algoritma logic-gate NOT sebagai berikut: Periksa tanda isi A • Jika positip (+) Konversikan ke dalam biner. 4510 = …2 5
6. 6. 45 ÷ 2 = 22 sisa 1 ⇒ Least Significant Bit (LSB) 22 ÷ 2 = 11 sisa 0 11 ÷ 2 = 5 sisa 1 5 ÷ 2 = 2 sisa 1 2 ÷ 2 = 1 sisa 0 1 ÷ 2 = 0 sisa 1 ⇒ Most Significant Bit (MSB) Dituliskan: 101101 atau 001011012 Tambahkan dengan 1 00101101 + 1 = 00101110 Tetapkan hasil sebagai bilangan negatip 00101110 ⇒ 11010001 (status: −) Konversikan biner ke dalam desimal (hasil dalam desimal nyatakan sebagai bilangan negatip) 00101110 = 0 + 1.25 + 1.23 + 1.22 + 1.21 = 32+8+4+2 = 4610 Gabungkan tanda negatip ke bilangan desimal tersebut. ⇒ −4610 Tuliskan hasil dalam desimal: ∼A=−46 Dibuktikan menggunakan script JavaScript sebagai berikut: NOT45.htm <script language=JavaScript> \$hasil1=~45; document.writeln("NOT(45) = ",\$hasil1,"<br>"); </script> Untuk: B Analog dengan persoalan sebelumnya. B = 12, maka ∼B=−13 Dibuktikan menggunakan script JavaScript sebagai berikut: NOT12.htm <script language=JavaScript> \$hasil1=~12; document.writeln("NOT(12) = ",\$hasil1,"<br>"); </script> Algoritma untuk mendapatkan nilai logic-gate NOT: Misalkan: b=–23 Periksa tanda isi variabel b • Jika positip (+) Konversikan ke dalam biner. Tambahkan dengan 1 Tetapkan hasil sebagai bilangan negatip Konversikan biner ke dalam desimal (hasil dalam desimal nyatakan sebagai bilangan negatip) • Jika negatip (−) Konversikan ke dalam biner. 2310 = …2 23 ÷ 2 = 11 sisa 1 ⇒ Least Significant Bit (LSB) 11 ÷ 2 = 5 sisa 1 5 ÷ 2 = 2 sisa 1 2 ÷ 2 = 1 sisa 0 1 ÷ 2 = 0 sisa 1 ⇒ Most Significant Bit (MSB) Dituliskan: 10111 atau 000101112 NOT-kan biner. 00010111 ⇒ 11101000 Tambahkan dengan 1 (1’s complement) 6
7. 7. 11101000 + 1 = 11101001 NOT-kan kembali biner. 11101001 ⇒ 00010110 Konversikan ke dalam desimal 00010110 = 0 + 1.24 + 0 + 1.22 + 1.21 + 0 = 16+4+2 = 2210 Tuliskan hasil dalam desimal. ∼b=22 Mendapatkan 2’s complement (Komplemen 2) dan 1’s complement (Komplemen 1) Misalkan: 410 ⇒ ditetapkan/direpresentasikan dengan panjang = 8 bit. maka, N = 00000100 Cara-1: menggunakan Algoritma Nashelsky n=panjang bit yang ditetapkan = 8 N=bit Data=410=00000100 Komplemen 2: Rumus: 2n – N = 28 – 4 = 256 – 4 = 252 25210 = 111111002 maka Komplemen 2 dari 410 atau 000001002 = 111111002 Komplemen 1: Rumus: [Hasil Komplemen 2] – [110] maka: 11111100 – 00000001 , digunakan algoritma pengurangan biner dengan skema sebagai berikut: 0 - 1 = 1 borrow 1 0 - 0 - 1 = 1 borrow 1 1 - 0 - 1 = 0 1 - 0 = 1 1 - 0 = 1 1 - 0 = 1 1 - 0 = 1 1 - 0 = 1 1 1 1 1 1 0 1 1 Sehingga didapatkan Komplemen 1 dari 410 atau 000001002 = 111110112 Cara-2: menggunakan Algoritma Gilmore Biner Desimal 0000 0100 4 10 di-komplemen 1, menjadi: (negasi-kan/not-kan) 1111 1011 Komplemen 1 di-komplemen 2, menjadi: (tambah-kan 1 10 ) 1111 1011 0000 0001 11 1 1 1 10 0 Komplemen 2 7
8. 8. Pengurangan BIT Dasar operasi pengurangan untuk masing-masing bilangan BINary digiT (BIT) menggunakan kaidah berikut ini: • BINary ke BINary, nyatakan dalam BINary 0 – 0 = 0 0 – 1 = 1, lakukan peminjaman dari digit sebelah kiri; 10 – 1 = 1, karena 1 + 1 = 10 1 – 0 = 1 1 – 1 = 1 Tanpa terjadi peminjaman digit Contoh: 2710 – 910 = 1810 2710 = 00011011 910 = 00001001 maka: 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 Terjadi peminjaman bit 1 pada digit di sebelah kiri Contoh: 2910 – 1110 = 1810 2910 = 00011101 1110 = 00001011 maka: 1 - 1 = 0 0 - 1 = 1 borrow 1 1 - 0 - 1 = 0 1 - 1 = 0 1 - 0 = 1 0 - 0 = 0 0 - 0 = 0 0 - 0 = 0 0 0 0 1 0 0 1 0 Tidak dapat meminjam bit 1 di sebelah kirinya karena yang akan memberi pinjaman tidak bernilai 1 tetapi 0, sehingga harus meminjam di sebelah kiri berikutnya yang bernilai bit 1. Contoh: 2510 – 1910 = 610 2510 = 00011001 1910 = 00010011 maka: 1 - 1 = 0 0 - 1 = 1 borrow 1 0 - 0 - 1 = 1 borrow 1 1 - 0 - 1 = 0 1 - 1 = 0 0 - 0 = 0 0 - 0 = 0 0 - 0 = 0 0 0 0 0 0 1 1 0 8
9. 9. • DECimal ke DECimal, nyatakan dalam BINary Contoh: 1710 – 1210 = 510 = (...)2 1710 = 00010001 1210 = 00001100 Lakukan operasi komplemen terhadap operand-2 (1210), sebagai berikut: 0000 1100 111 1 001 1 kom plem en 1 1 0 000 011 carry 0 0 0 1 0001 operand-1 1 1 11 0100 operand-2 1 11 1 010 0 kom plem en 2 1 1 10 000 carry 1 0 0 00 010 1 result +5 Contoh: tanda bahw a bernilai positip 1210 – 1710 = –510 = (...)2 Lakukan operasi komplemen terhadap operand-2 (1710), sebagai berikut: 0001 0001 111 0 111 0 kom plem en 1 1 0 000 000 carry 1 11 0 111 1 kom plem en 2 Setelah didapatkan hasil komplemen 1710 = 111011112, maka lakukan operasi penjumlahan sebagai berikut: 0 0 00 1100 operand-1 1 1 10 1111 operand-2 0 0 01 100 carry -5 1 1 11 101 1 result Pem buktian 1111 101 1 000 0 010 0 kom plem en 1 1 0 000 000 carry 0000 0101 kom plem en 2 +5 Perkalian BIT Tabel Perkalian pada BINary digiT: Multiplicand X 0 1 0 0 0 Multiplier 1 0 1 Contoh: 1710 x 1210 = 20410 1210 x 710 = 9610 9
10. 10. Secara sederhana dapat dikatakan sebuah perkalian adalah penjumlahan berulang sebanyak operand-2 terhadap operand-1; artinya terlihat pada skema sebagai berikut: 1210 x 710 = 12 + 12 + 12 + 12 + 12+ 12 + 12 = 8410 Diuraikan menggunakan operasi jumlah berulang (looping process) sebagai berikut: 0 12 ... 1 12 12 ... 2 24 12 ... 3 36 12 ... 4 48 12 ... 5 60 12 ... 6 72 12 ... 7 Selanjutnya dalam biner, misalkan 84 pada kasus berikut ini: 1710 x 1210 = (...)2 17 = 00010001 = 010001 12 = 00001100 = 001100 Proses perkalian-nya dilakukan sebagai berikut: 010 001 0 01 1 00 000 000 0 000 00 01 000 1 010 001 0 000 00 00 0 0 0 0 00 01 1 0 0 1 1 0 0 Pembagian BIT Pembagian adalah proses kebalikan dari perkalian; pengurangan berulang sebanyak operand-2 terhadap operand-1, misalkan sebagai berikut: Contoh: 8410 ÷ 1210 = 710 Diuraikan menggunakan operasi pengurangan secara berulang (looping process) sebagai berikut: 84 12 ... 1 72 12 ... 2 60 12 ... 3 48 12 ... 4 36 12 ... 5 hasil = 7 24 12 ... 6 12 12 ... 7 0 8410 = 010101002 = 10101002 1210 = 000011002 = 11002 710 = 000001112 = 01112 10
11. 11. Proses pembagian-nya dilakukan sebagai berikut: 0111 1 10 0 101010 0 000 0 10101 0 1 100 1001 0 01 1 0 0 01100 1 10 0 0 00 0 Formula standar sebuah statement operasi arithmatika: c ← a ÷ b; a : yang dibagi b : pembagi c : hasil bagi Algoritma Pembagi pada BINary: Tetapkan panjang bit yang dibagi dan pembagi Ambil sejumlah bit pada yang dibagi sepanjang nilai panjang pembagi Bila didapatkan nilai yang dibagi lebih kecil dari pembagi, hasil bagi=0; jika bukan, tetapkan hasil bagi=1 Contoh: 10310 ÷ 1510 = 610 sisa 1310 10310 = 11001112 1510 = 11112 610 = 01102 1310 = 11012 Ingat, digit 0 di depan sebuah bilangan numerik bisa diabaikan, tergantung situasi yang mengkehendaki kebutuhan penggunaan digit 0 tersebut. Mekanisme pengerjaannya diuraikan sebagai berikut: 011 0 1 11 1 11001 1 1 000 0 11001 01111 1010 1 011 11 01101 0 00 0 1 10 1 Mekanisme pengerjaan operasi pembagian berdasar pada kaidah pada basis bilangan 10 (DECimal). Operasi pembagian sangat berguna saat membahas Teknik Error-Control, Cyclic Redundancy Check, pada jaringan komputer. Penjumlahan BIT Bila pada operasi pengurangan ada istilah borrow (pinjam 1 digit), maka pada operasi penjumlahan juga dikenal istilah sejenis namun dengan nama carry (carry-out dan carry- 11
12. 12. in); disebut carry-out, jika 1 digit berlebih hasil penjumlahan dikeluarkan; dan disebut carry-in, jika 1 digit berlebih dari hasil penjumlahan dimasukkan (diberikan) pada proses penjumlahan selanjutnya. Misalkan: 12 + 12 = 02 carry-out 1 Namun, jika 112 + 012 ditunjukkan pengerjaannya sebagai berikut: carry-out 1 1 0 carry 1 1 1 0 0 carry 1 c a r r y - in 1 0 0 1 1 0 0 Contoh: 2510 + 1910 = 4410 2510 = 00011001 1910 = 00010011 maka: 1 1 = 0 carry 1 1 0 1 = 0 carry 1 1 0 0 = 1 1 0 = 1 1 1 = 0 carry 1 1 0 0 = 1 0 0 = 0 0 0 = 0 4410 0 0 1 0 1 1 0 0 Operasi Arithmatika pada OCT dan HEX Cara baku yang digunakan untuk mengimplementasikan operasi arithmatika pada deret bilangan OCT dan HEX tidak ada yang standar. Mengapa, disebabkan OCT dan HEX tidak menggunakan cara standar seperti pada BIN, di sisi lain dengan memperhatikan bahwa dasar pengoperasian arithmatika, user tetap berdasar menggunakan basis bilangan 10 (DEC). Oleh sebab itu, biasanya agar lebih efektif, dikonversikan dulu OCT dan HEX ke dalam DEC, lalu di-operasi-kan menggunakan operator arithmatika sesuai yang diinginkan, setelah hasil didapatkan, lalu dikonversikan kembali ke OCT atau HEX sesuai yang ditetapkan. Contoh: OCT (Basis Bilangan 8) 0374 ÷ 022 = …8 Solusi: 0374 = 3.64 + 7.8 + 4.1 = 192 + 56 + 4 = 25210 022 = 2.8 + 2.1 = 16 + 2 = 1810 maka, 252 ÷ 18 = 14 1410 = …8 ; digunakan algoritma konversi DEC-to-OCT: 12
13. 13. 14 ÷ 8 = 1 sisa 6 ⇒ Least Significant Digit (LSD) 1 ÷ 8 = 0 sisa 1 ⇒ Most Significant Digit (MSD) sehingga didapatkan 1410 = 168 disimpulkan, 0374 ÷ 022 = 016 HEX (Basis Bilangan 16) 0xFC ÷ 0x12 = …16 Solusi: 0xFC = F.16 + C.1 = 15.16 + 12.1 = 240 + 12 = 25210 0x12 = 1.16 + 2.1 = 16 + 2 = 1810 maka, 252 ÷ 18 = 14 1410 = …16 ; digunakan algoritma konversi DEC-to-HEX: 14 ÷ 16 = 0 sisa 14 ⇒ Single-Digit (LSD = MSD) 14 ⇒ E sehingga didapatkan 1410 = 0xE atau E16 disimpulkan, 0xFC ÷ 0x12 = 0xE Contoh Kasus: Tentukan mekanisme untuk mendapatkan representasi dalam biner (dengan panjang data 16bit) untuk persoalan berikut ini: −510 (DEC −5) Solusi: 510 = 00000000000001012 Untuk mendapatkan representasi –510 dalam biner dilakukan tahapan pengerjaan sebagai berikut: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 m endapatkan 1 's c o m p le m e n t , di-NOT-kan 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1's complement 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 2's complement Maka, –510 direpresentasikan dalam biner dengan panjang 16bit adalah 11111111111110112. −510 + 910 = (…)2 Solusi: Dalam desimal, −510 + 910 = 410 910 = 00000000000010012 410 = 00000000000001002 Skema pengerjaan: carry 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +4 s ig n - m a g n i t u d e (tanda '+') 13
14. 14. Bedakan dengan statement berikut ini: 910 − 510 = (…)2 1 1 = 0 Skema pengerjaan: 0 0 = 0 0 1 = 1 borrow 1 1 0 1 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 4 10 Floating-point (Bilangan Pecahan) Dalam sistem bilangan biner, disebut juga sebagai Fractional Binary Number, yakni bilangan pecahan pada deret bilangan biner. Dalam desimal dituliskan sebuah pecahan: 0.5176 =5 x10 −1 + 1x10 −2 + 7 x10 −3 + 6 x10 −4 sehingga: N = d 1 R + d 2 R + d 3 R + d 4 R + ... + d n R 1 2 3 4 n Sedangkan dalam binary fractional: 0.10112 = …10 , yakni: 0.687510 Dibuktikan sebagai berikut: −1 −2 −3 −4 0.1011 = 1.2 + 0.2 + 1.2 + 1.2 = 0.5 + 0(0.25) + 1(0.125) + 1(0.0625) = 0.6875 10 Contoh: Konversikan ke dalam desimal: a) 0.101101 b) 0.10001 Jawab: −1 −2 −3 −4 −5 −6 a) 0.1011012 = 1.2 + 0.2 + 1.2 + 1.2 + 0.2 + 1.2 = 0.5 + 0 + 0 + 0.125 + 0.0625 + 0 + 0.015625 = 0.70312510 −1 −2 −3 b) 0.100012 = 1.2 + 0.2 + 0.2 + 0.2 −4 + 1.2 −5 = 0.5 + 0.03125 = 0.5312510 14
15. 15. Konversi Desimal ke Fractional Binary Contoh: 0.5725110 = …2 Solusi: 0.57251 0.14502 0.29004 0.58008 0.16016 ... 2 2 2 2 2 1.14502 0.29004 0.58008 1.16016 0.32032 1 0 0 1 0 Proses dihentikan pada n panjang digit yang diketahui. dituliskan: 0.10010...2 −1 −4 diperiksa: 0.10010 = 1.2 + 0 + 0 + 1.2 + 0 = 0.5 + 0.0625 = 0.562510 ≈ 0.5610 ⇒ 0.5725110 Contoh: 0.6562510 = …2 Solusi: 0.65625 0.31250 0.62500 0.25000 0.50000 selesai 2 2 2 2 2 1.31250 0.62500 1.25000 0.50000 1.00000 1 0 1 0 1 ☺ silahkan diperiksa … Contoh: 0.817610 = …2 Solusi: 0.8176 0.6352 0.2704 0.5408 0.0816 0.1632 ... dst 2 2 2 2 2 2 1.6352 1.2704 0.5408 1.0816 0.1632 0.3264 1 1 0 1 0 0 Jika diperiksa ⇒ 0.110100 −1 −2 −4 0.110100 = 1.2 + 1.2 + 0 + 1.2 +0+0 = 0.5 + 0.25 + 0.0625 = 0.812510 ≈ 0.817610 Konversi Kombinasi Mixed & Fractional • Binary ke Desimal −1 −3 11010.101102 = 1.2 + 1.2 + 1.2 + 1.2 + 1.2 4 3 1 + 1.2 −4 = 16 + 8 + 2 + 0.5 + 0.125 + 0.0625 = 26.687510 • Desimal ke Binary 274.187510 = …2 Solusi: 15
16. 16. 274 2 = 0 137 2 = 1 68 2 = 0 34 2 = 0 LSB 17 2 = 1 8 = 0 2 4 2 = 0 2 2 = 0 1 2 = 1 0 1 0 0 0 1 0 0 10 MSB 2 0.1875 0.3750 0.7500 0.5000 selesai 2 2 2 2 0.3750 0.7500 1.5000 1.0000 0 0 1 1 dituliskan: 0.0011 2 Sehingga didapatkan ⇒ 275.187510 = 100010010.00112 Adder Adder, yaitu sirkuit di ALU yang digunakan untuk melaksanakan operasi arithmatika. • Half-Adder • Full-Adder Half-Adder Dalam Half-Adder dikenal unit pemroses yang disebut Sum dan Carry. Pada Aljabar Boolean disebutkan: Sum = S = X . • Y + X • Y = X ⊕Y Carry = X • Y Gambar Blok Gerbang Half-Adder: X Sum Y Carry Dalam tabel kebenaran, dianalogikan sebagai dua masukan ke SUM. Tabel Kebenaran: X Y Sum Carry 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 16
17. 17. Full-Adder Bila pada Half-Adder hanya memiliki dua unit pemrosesan, maka pada Full-Adder dikenal tiga unit pemroses yakni: Sum, Carry-in (Ci), Carry-out (Co). Co adalah bit keluaran dari hasil penjumlahan, sedangkan Ci adalah nilai Co dari penjumlahan bit sebelumnya. Dalam tabel kebenaran, dianalogikan sebagai tiga masukan ke SUM. Tabel Kebenaran: X Y Ci SUM Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Misalkan: 1+1 = 2 (dalam desimal), maka dalam biner sebagai berikut, 0 1 Ci 0 1 Ci 0 1 dapat dituliskan 0 1 0 1 kem bali 0 1 1 0 Sum 0 1 Co 0 1 Co 1 0 Sum Bit pertama masuk sebagai Carry-in (Ci) adalah 0, karena diawali dengan kekosongan nilai masukan Ci dari sinyal masukan. Karena itu, Ci = 0 untuk awal masukan ke blok sistem. Gambar Blok Gerbang Full-Adder: Ci (Carry-in) X Sum Y Co (Carry-out) Latihan: Selesaikan penjumlahan berikut ini dengan Half-Adder (HA)/ Full-Adder (FA): a) 0101 + 1010 (HA) b) 1001 + 1110 (HA) c) 1011 + 1101 (FA) 17
18. 18. Solusi: a) 0101 + 1010 dilakukan dengan Half-Adder Tabel Kebenaran: S Carry X Y X⊕Y X•Y 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 Gambar Sirkuitnya: Y3 X3 Y2 X2 Y1 X1 Y0 X0 S0 S1 S2 S3 C3 C2 C1 C0 b) 1001 + 1110 dilakukan dengan Half-Adder Tabel Kebenaran: Sum Carry X Y Tidak sempurna/ X⊕Y X•Y belum selesai, 1 0 1 0 dengan alasan 0 1 1 0 terjadi overflow 0 1 1 0 1 1 0 1 ∴ Kesimpulan : terlihat bahwa Half-Adder hanya dapat/tepat diimplementasikan pada penjumlahan bit yang tidak mengalami overflow. Sehingga penjumlahan ini sangat tepat jika diimplementasikan dengan Full- Adder. Tabel Kebenaran: S Co X Y Ci X⊕Y X•Y (X⊕Y ) •Ci (X⊕Y )⊕Ci (X.Y )+((X⊕Y ) •Ci) 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 18
19. 19. 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 Ci4 Gambar Sirkuitnya: Ci3 Ci2 Ci1 Ci0 X4 X3 X2 X1 X0 S4 S3 S2 S1 S0 Y4 Y3 Y2 Y1 Y0 Co4 Co3 Co2 Co1 Co0 c) 1011 + 1101 dilakukan dengan Full-Adder Tabel Kebenaran: S Co X Y Ci X⊕Y X•Y (X⊕Y ) •Ci (X⊕Y )⊕Ci (X.Y )+((X⊕Y ) •Ci) 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1011 = 00001011 = 0000000000001011 1101 = 00001101 = 0000000000001101 Gambar Sirkuitnya: 19