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.
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. 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. 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. 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. 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. 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. 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. 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. • 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. 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. 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. 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. 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. 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
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. 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. 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