Anda di halaman 1dari 71

ARITMETIKA KOMPUTER

Oleh Ir. H. Saifullah, MT.


ARITMETIKA DAN UNIT LOGIKA (ALU)

 ALU adalah bagian komputer yang berfungsi


membentuk operasi-operasi aritmetika dan
logik terhadap data.
 Semua elemen lain sistem komputer: control
unit, register, memori, I/O berfungsi
membawa data ke ALU untuk selanjutnya
diproses dan kemudian
mengambil kembali hasilnya.
ARITMETIKA DAN UNIT LOGIKA (ALU)

 Secara praktis komputer didesain dengan jenis


operasi aritmatika yang terbatas.

Aritmetika Komputer

Aritmetika Biner Aritmetika Desimal

Titik Tetap Titik mengambang


ARITMETIKA BILANGAN TITIK-TETAP

 Operasi aritmetika biner titik tetap merupakan aspek


penting dalam ALU.
 Empat jenis operasi aritmetika yg dibutuhkan:
1. penjumlahan
2. pengurangan
3. perkalian, dan
4. pembagian.
ARITMETIKA BILANGAN TITIK-TETAP

 Ada dua strategi implementasi mesin aritmetika ini:

1. Rancangan sirkuit ALU untuk 4 operasi di atas.


Pendekatan ini berakibat harga ALU mahal dan
rumit.
2. Rancangan sirkuit ALU hanya untuk penjumlahan
dan pengurangan, sedangkan operasi perkalian
dan pembagian dilakukan dengan menggunakan
software. Pendekatan ini mengakibatkan ALU
menjadi lambat dan murah.
PENJUMLAHAN INTEGER

 Ada dua jenis penjumlahan yang dibutuhkan:

1. Penjumlahan bilangan tak-bertanda: misal u/


kalkulasi alamat operand.
2. Penjumlahan bilangan bertanda: misal u/
kalkulasi numerik dalam komputer karena
operand-operand-nya dapat berupa bilangan
positif dan negatif.
PENJUMLAHAN INTEGER

 Untuk membangun sirkuit aritmetika


komputer dibutuhkan sirkuit adder
(penjumlah) dasar, yaitu

1. half adder (HA)


2. full adder (FA)
PENJUMLAHAN INTEGER

 HA adalah sebuah penjumlah yg melakukan


penjumlahan dua bilangan biner 1-bit, seperti gambar
berikut.

 Keluaran SUM (S, jumlah) dan CARRY (C,


pindahan):
SUM  A  B
CARRY  AB
PENJUMLAHAN INTEGER

 Blok diagram HA

 Operasi HA seperti tabel berkut.


A B CARRY SUM
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
PENJUMLAHAN INTEGER

 FA adalah sebuah penjumlah yg melakukan


penjumlahan tiga bilangan biner 1-bit, yaitu dua
sebagai masukan A dan B serta masukan ketiga
berasal dari carry in (Cin), seperti gambar berikut.

SUM  A  B  Cin
CARRY  AB  ACin  BC in
PENJUMLAHAN INTEGER

 Operasi FA dapat dilihat pada tabel berikut.

A B C in CARRY SUM
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
PARALEL ADDER

 Paralel adder adalah sebuah penjumlah yg


mempunyai beberapa FA terpisah yg di-kaskade-kan
menjadi satu grup.
 Paralel adder melakukan penjumlahan dari multi FA
secara simultan.
PARALEL ADDER

 Pada dasarnya ada dua jenis paralel adder, yaitu:


1. ripple-carry adders,
2. carry look-ahead adders.

 Perbedaan keduanya terletak pada carry bit yang


dibangkitkan.
Ripple-carry adders (RCA)
The simplest way to build an N-bit ripple carry
adder is to chain together N full adders. The
Cout of one stage acts as the Cin of the next
stage, as shown in this figure for 32-bit addition.
Ripple-carry adders
 Waktu tunda yg dimunculkan oleh carry menentukan
lamanya penjumlahan. Carry pd posisi LSB harus
merambat melalui semua posisi bit. Jika td adalah
waktu untuksetiap tingkat FA dan ada sejumlah N-bit,
maka waktu tunda rambatan (propagation delay)
maksimum u/ N-bit ripple carry adder adalah

tripple = N x td

(waktu yang diperlukan u/ menyelesaikan penambahan)


Ripple-carry adders
 Keuntungan ripple carry adder adalah lebih
cepat dari pada serial adder.
 Kekurangannya ripple carry adder menjadi
lambat ketika jumlah bit bertambah. Karena
carry yg terjadi pada LSB harus dirambatkan
ke seluruh tingkatan secara berurut.
 Hal ini dikenal dengan istilah ripple carry
problem.
Carry look-ahead adders

 Carry look-ahead adder (CLA)


Adalah penjumlah kecepatan tinggi yang
mengikut strategi khusus untuk
pembangkitan carry yang cepat pada setiap
tingkat tanpa menunggu carry dari tingkat
sebelumnya.
Carry look-ahead adders
 Gambar berikut memperlihatkan contoh arsitektur CLA.
Carry look-ahead adders
 Waktu tunda rambatan (propagation delay) N-bit CLA
yg terbagi ke dalam k blok,
Carry look-ahead adders
Contoh 1
Compare the delays of a 32-bit ripple-carry adder and a
32-bit carry-lookahead adder with 4-bit blocks. Assume
that each two-input gate delay is 100 ps and that a full
adder delay is 300 ps.
Jawab
- RCA
the propagation delay of the 32-bit ripple-carry adder is

tripple= NtFA = 32 x 300 ps = 9.6 ns


Carry look-ahead adders
- CLA
The CLA has tpg = 100 ps, tpg-block = 6 x 100 ps = 600 ps,
and tAND-OR = 2 x 100 ps = 200 ps. The propagation delay
of the 32-bit carry-lookahead adder with 4-bit blocks is

= 100ps + 600ps + (32/4 - 1) x 200ps + (4 x 300 ps)


= 3.3 ns
(almost three times faster than the ripple-carry adder).
Penjumlahan dengan komplemen-2

 Prosedur :
penjumlahan dua bilangan biner bertanda
dengan bilangan negatif (yang dinyatakan
dalam komplemen 2) diperoleh dengan
menjumlahkan kedua bilangan tersebut
termasuk bit tanda. Simpanan akhir pada
posisi bit tanda diabaikan.
 Jadi, bila bilangannya negatif, ubah ke
komplemen 2 sebelum dijumlahkan.
Penjumlahan dengan komplemen-2
Contoh 2
Dengan menggunakan biner 4-bit komplemen-2,
hitunglah
a) -7 + 4 b) -7 + 7 c) 7 + 6 d) -7 + (-4)
Jawab
a) Ubah -7 ke dalam komp. 2
-7 = 1001
4 = 0100
Jadi, -7 + 4 =-3
1001 + 0100 = 1101 (2’s comp.)
= -3
Penjumlahan dengan komplemen-2

b) -7 + 7
Ubah -7 ke dalam 2’s comp.
-7 = 1001
-7 + 7 = 0

1001
0111 +
1 0000
bit ke-5 (carry out) dihilangkan, menghasilkan 4-bit hasil
yg benar, yaitu 00002 = 010
Penjumlahan dengan komplemen-2

c) 7 + 6 = (+7) + (+6)
 Dilakukan sbb:
(+7) + (+6) = +13 atau
0111 + 0110 = 1101
Lihatlah, bit tanda 1, berarti bilangan ini (-).
Atau, 1101 = - 3
Memberikan hasil yang salah, karena diluar batas
jangkauan bilangan positif komplemen-2, 4-bit (+7).
Peristiwa ini disebut sebagai overflow. Tapi jika
perhitungan menggunakan 5-bit atau lebih, maka
hasilnya 011012 = 1310 , suatu hasil yg benar.
Penjumlahan dengan komplemen-2

d) -7 + (-4)
 Ubah -7 dan -4 ke komp-2 : (karena negatif)
-7 = 1001
-4 = 1100
-7 + (-4) = - 11 (dalam desimal), atau
1001 + (1100) = 0101 = 5, suatu hasil yg salah !
Hal ini, disebabkan hasilnya (-11) lebih kecil dari nilai
terendah (-8). Terjadi overflow.
Penjumlahan dengan komplemen-2

Kesimpulan pada penjumlahan dengan komplemen 2:


1. Penjumlahan dua bilangan dengan tanda berbeda
tidak menimbulkan overflow (contoh a & b).
2. Penjumlahan dua bilangan dengan tanda sama
dapat terjadi overflow. Jika tanda dari hasil berbeda
dengan tanda kedua bilangan yg dijumlahkan,
maka terjadi overflow. Jika tanda dari hasil sama
dengan tanda kedua bilangan yg dijumlahkan,
maka tidak terjadi overflow, (contoh c & d).
Deteksi overflow
 Ketika dua bilangan biner dengan masing-masing n
bit dijumlahkan dan menghasilkan n+1 bit, hal ini
dikatakan sebagai terjadi overflow.
 Hasil n +1 bit ini tidak dapat ditampung oleh panjang
register n bit standar.
 Overflow merupakan suatu masalah dalam komputer
karena panjang register terbatas (tertentu).
 Terjadinya overflow teramati pada carry in dan carry
out di posisi bit tanda.
 Jika kedua carry ini tidak sama, berarti terjadi
overflow
Deteksi overflow
Contoh 3
Hitunglah dengan biner 8-bit komplemen 2, apakah
terjadi overflow?
1. (+ 70) + (+ 80)
2. (– 36) + (– 90)

Jawab 1. 0 1 berbeda : terjadi overflow


+ 70 0100 0110
+ 80 0101 0000 +
+ 150 1001 0110 (diluar batas: +127 s/d -128, hasil
salah)
(–)
Deteksi overflow
Jawab 2
Dari (– 36) + (– 90), maka
11 sama : tidak terjadi overflow
– 36 = 1101 1100
– 90 = 1010 0110
– 126 1000 0010 (– 126)

bit tanda 1 (–) : hasil benar (+127 s/d -128)


Penjumlahan dengan komplemen 2

LATIHAN
1. Lakukan penjumlahan dengan komplemen-
2. Gunakan bilangan biner 5-bit. Tunjukkan
apakah terjadi overflow?
a) 7 + (–3) b) (–6) + 5
c) 9 + 8 d) (–9) + (–3)
e) (–9) + (–8) f) (–9) + 9
Pengurangan biner
 Aturan

 Bagaimana jika pengurang lebih besar dari yang


dikurang?
Pengurangan biner
 Pengurangan dalam multi-bit.
Pengurangan integer
Pengurangan bilangan titik-tetap (A – B) dilakukan
dengan dua langkah:
1. Ambil komplemen-2 terhadap B, lalu
2. Jumlahkan dengan A, atau
A – B = A + Bk2
dimana Bk2 adalah komplemen-2 dari B.
Atau dengan kata lain, pengurangan dapat dilakukan
melalui penjumlahan dengan membalik tanda
pengurang:
(± A) – (+ B) = (± A) + (– B)
(± A) – (– B) = (± A) + (+ B)
Pengurangan integer
Contoh 4
Dengan menggunakan biner 4-bit komplemen-2,
hitunglah : a) 5 – 3 b) 3 – 5

 Bentuk 5 – 3 = 5 – (+3) = 5 + (– 3)
Ubah -3 ke kompl-2 :
3 = 0011 - 3 = 1101 5 = 0101
Jumlahkan :
5 + (-3) = 0101 + 1101 = 1 0010 = 00102 = 210
Simpanan akhir diabaikan, karena hasilnya
disimpan dalam biner 4-bit.
Pengurangan integer
b) 3 – 5
 Bentuk 3 – 5 = 3 – (+5) = 3 + (– 5).
Ubah – 5 ke kompl-2 didapat - 5 = 1011 dan
3 = 0011. kemudian tambahkan ;
3 + (-5) = 0011 + 1011 = 11102 = - 210
(bandingkan dengan jawaban a di atas).
Sekarang giliran Saudara, u/ mengerjakan soal
dibawah ini..
c) (– 6) – (–13) d) (+40) – (+ 48) ,gunakan biner 8-bit
Pengurangan integer
LATIHAN
Lakukan operasi aritmetika berikut dalam sistem
bilangan biner 8-bit komplemen 2. Tunjukkan apakah
masing-masing terjadi overflow?
a) (+ 65) + (+ 36)
b) (+ 65) – (– 90)
c) (– 65) – (+ 90)
d) (– 70) – (+ 80)
Pengurangan integer
 Sirkuit penjumlah / pengurang komplemen-2.
Perkalian bilangan tak-bertanda

 The Paper and Pencil Method


Misalkan perkalian A x B, dapat dilakukan secara
manual dengan mengalikan B bit demi bit dengan A
dan menjumlahkan semua hasil kali parsial tersebut.
Misalnya: 13 x 11 berikut ini.
Perkalian bilangan tak-bertanda
 Perkalian tersebut dapat dilakukan dengan sebuah
susunan (array) dari sel-sel yg terdiri dari FA dan
sebuah gerbang AND. Setiap sel menghitung sebuah
hasil kali parial tertentu.
Perkalian bilangan tak-bertanda

 Rangkaian pengali kombinasional (susunan


FA / AND gate) tidak praktis digunakan u/
menghadapi bilangan yg panjang, karena
menggunakan gerbang dalam jumlah yg
banyak hanya melakukan satu fungsi
 Oleh karena nya, banyak komputer
melaksanakan perkalian dengan apa yg
disebut sebagai Serial Multiplier
Perkalian bilangan tak-bertanda
 The Add-Shift Method
Disini perkalian dilakukan melalui sederetan operasi tambah /
geser kanan (Serial Multiplier),
seperti pads diagram alir:
Perkalian bilangan tak-bertanda
Contoh 5
Pandanglah perkalian 13 x 11 (M = 13; Q = 11)
 Proses perkalian ditunjukkan dalam tabel berikut.
Perkalian bilangan tak-bertanda
 Contoh 5, di atas jika dikerjakan dengan metode
paper and pencil adalah sbb.
Perkalian bilangan tak-bertanda

LATIHAN
Dengan metode tambah / geser (add/shift),
laksanakan operasi A × B pada bilangan tak
bertanda, A = 8 dan B = 6. Gunakan biner 4-bit.
Perkalian bilangan tak-bertanda

 Konfigurasi hardware u/ melaksanakan


operasi perkalian (4-bit) dg metoda add/shift
adalah sbb.
Perkalian bilangan bertanda

 Bilangan positif dapat dikalikan dengan cara


seperti bilangan tak-bertanda. Jika tanda
pengali dan yg dikali berbeda, maka tanda
hasilnya negatif. Jika kedua bilangan positif
atau negatif, maka tanda hasil-kalinya adalah
positif.
 Jadi, aturan tanda berlaku umum, yaitu:
tanda hasil-kali adalah hasil EXOR dari tanda
kedua bilangan tersebut.
Perkalian bilangan bertanda

 Perkalian komplemen-2
Jika salah satu operand negatif merupakan
bentuk komplemen-2, maka bentuk perkalian
sebelumnya tidak dapat digunakan.
 Ada beberapa metode perkalian yang
menggunakan komplemen-2. Algoritma
Booth adalah suatu metode perkalian
komplemen 2 yang populer.
 Metode ini juga cepat dalam prosesnya.
Perkalian bilangan bertanda
 Algoritma Booth
Prinsif dasar algoritma Booth sebenarnya tidak ada
perkalian, yang ada adalah penjumlahan dari pola-
pola multiplicand yang digeser secara cepat.
 Diagram blok algoritma Booth
Perkalian bilangan bertanda
 Operasi algoritma Booth ditunjukkan pada diagram
alir berikut.
Perkalian bilangan bertanda
Beberapa operasi geser (shift) : logical and arithmetic shift
Perkalian bilangan bertanda
 Contoh 6
Gunakan algoritma Booth untuk menyelesaikan
perkalian (a) (+3) x (+7), (b) (-3) x (+7). Gunakan
biner 4-bit (n = 4 bit).
Jawab:
Ubah bilangan ke biner 4-bit :
3 = 0011 (Q)
7 = 0111 (M)
-3 = 1101 (komplemen 2)
Perkalian bilangan bertanda
a) (+3) x (+7)
Perkalian bilangan bertanda
b) (-3) x (+7)
Perkalian bilangan bertanda
LATIHAN
Tunjukkan langkah-langkah perkalian
menggunakan algoritma Booth untuk operasi:
a) (+12) x (-9) (gunakan biner 5-bit)
b) 010111 x 110110 (kompl. 2)
Pembagian integer

 Dibandingkan dengan operasi aritmatika dasar


yg lain (tambah, kurang dan kali), pembagian
dipandang sangat komplek (sulit) dan perlu
banyak waktu.
 Contoh 7
Pembagian integer
 Contoh lain u/ pembagian
Pembagian integer

LATIHAN
Hitunglah
a) 1100 : 100
b) 111111 : 1001
c) 10111 : 100
d) 11010111 : 110
Pembagian integer
 Contoh struktur hardware
Aritmetika bilangan titik-mengambang

 Aritmetika bilangan titik-mengambang mempunyai


aturan sendiri dan memerlukan sirkuit hardware
tambahan dibandingkan dengan datapath titik-tetap.
 Anggap dua buah operand titik-menambang A dan B,
A = Ma x rEa dan B = Mb x rEb
Dimana Ma dan Mb adalah mantisa dari A dan B, Ea
dan Eb adalah eksponen A dan B dan r adalah basis
(biasanya 2 atau 10).
 Sebelum dijumlahkan atau dikurangkan, eksponen
kedua bilangan harus disamakan.
Aritmetika bilangan titik-mengambang

Langkah melakukan penjumlahan dan pengurangan:


1. Bandingkan kedua eksponen dan hitung selisih
keduanya (ed = Ea – Eb atau Eb – Ea).
2. Pilih A atau B yang eksponennya terkecil.
3. Geser ke kanan mantisa sejauh ed, sampai
eksponen kedua bilangan sama.
4. Jumlahkan mantisa baru: Ma + Mb
5. Hasil jumlahan : (Ma + Mb) x red
6. Normalkan hasil
Aritmetika bilangan titik-mengambang
Contoh 8
Jumlahkan 1.02635126 x 1018 dan 1.21300213 x 1015.
Jawab:
 A = 1.02635126 x 1018 dan B = 1.21300213 x 1015
 ed = Ea – Eb = 18 – 15 = 3
 B mempunyai eksponen terkecil, yaitu 15
 mantisa B digeser ke kanan sejauh 3 kali:
Mb yg digeser = 0.00121300213
 Ma + Mb = 1.02635126
0.00121300 +
1.02756426
 Hasi 1.02756426 x 1018, normalkan 10.2756426 x 1017
Aritmetika bilangan titik-mengambang

Contoh 9
Jumlahkan 1.1100 x 24 dan 1.1000 x 22.
Jawab:
 A = 1.1100 x 24 dan B = 1.1000 x 22
 ed = 4 – 2 = 2
 B = 1.1000 x 22 (geser ke kanan 2-bit)
= 0.011000 x 24
 M = 1.1100 + 0.0110 = 10.0010
 Hasil = 10.0010 x 24
 Normalkan = 1.0001 x 25 (anggap 4 bit setelah koma)
Aritmetika bilangan titik-mengambang

Contoh 10
Hitunglah 1.0002 ×2–3 – 1.0002 ×22 (anggap 3 bit setelah koma)
Jawab:
 A = 1.0002 ×2–3 dan B = 1.0002 ×22
 ed = 2 –(– 3) = 5
 A = 1.0002 ×2–3 (geser kanan 5 bit) :
 = 0.000010000 x 22
 Kurangkan mantisa 0.00001 – 1.00000 = – 0.11111
 Atau 0.00001 + 1.00000 = 1.00001 (komp’2, hasil neg.)
= – 0.11111
Aritmetika bilangan titik-mengambang

 Hasil 1.0002 ×2–3 – 1.0002 ×22 = – 0.11111 x 22


 Normalkan – 0.11111 x 22 = – 1.11112 x 21
 Pemotongan (rounding):

 Normalkan lagi (ruonding hasilkan carry) :


Aritmetika bilangan titik-mengambang

Diagram alir
Aritmetika bilangan titik-mengambang

LATIHAN
Hitunglah a) 1.111 x 2-1 + 1.011 x 2-3
b) 0.101 x 23 + 0.111 x 24
c)
Aritmetika bilangan titik-mengambang

Perkalian
Perkalian A dan B melibatkan operasi berikut:

(Ma x Mb) x rEa + Eb

Tiga langkah dasar :


1. Jumlahkan eksponen, yaitu Ea + Eb
2. Kalian kedua mantisa
3. Normalkan dan rounding hasil akhir (bila perlu)
Aritmetika bilangan titik-mengambang

Contoh 11
Kalikan 1.000 x 2-2 dan –1.010 x 2-1

Jawab:
 Jumlahkan eksp.: –2 + (–1) = –3
 Kalikan mantisa: 1.000 x (–1.010) = –1.010000
Sa ≠ Sb shg. sign hasil akhir negatif.
 Rounding : 1.010000 = 1.010 (3 bit setelah titik)
 Hasil kali : –1.010 x 2-3
Aritmetika bilangan titik-mengambang

Contoh 12
Kalikan 1.010 ×2–1 by –1.110 ×2–2
Aritmetika bilangan titik-mengambang

Anda mungkin juga menyukai