Anda di halaman 1dari 50

 Semua bilangan, data maupun program

diterjemahkan oleh komputer ke dalam bentuk


biner.
 Bilangan biner adalah bilangan yang hanya
terdiri atas 2 kemungkinan(Berbasis dua), yaitu
0 dan 1.
 Karena berbasis 2, maka pengkorversian ke
dalam bentuk desimal adalah dengan
mengalikan suku ke-N dengan 2N. Contohnya:
bilangan biner 01112 = (0 X 23) + (1 X 22) + (1 X
21) + (1 X 20) = 710
 Paling banyak dipakai dalam kehidupan
sehari-hari
 Bilangan desimal adalah bilangan yang terdiri
atas 10 buah angka(Berbasis 10), yaitu angka 0-
9.
 Dengan basis sepuluh ini maka suatu angka
dapat dijabarkan dengan perpangkatan
sepuluh. Misalkan pada angka 12310 = (1 X 102)
+ (2 X 101) + (3 X 100).
 Bilangan oktal adalah bilangan dengan
basis 8, artinya angka yang dipakai
hanyalah antara 0-7.
 Sama halnya dengan jenis bilangan yang
lain, suatu bilangan oktal dapat
dikonversikan dalam bentuk desimal
dengan mengalikan suku ke-N dengan
8N. Contohnya bilangan 128 = (1 X 81) + (2
X 80) = 10.
 Bilangan
hexadesimal merupakan bilangan
yang berbasis 16. Dengan angka yang
digunakan berupa:
• 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
 Karena
berbasis 16 (24), maka 1 angka pada
hexadesimal akan menggunakan 4 bit.
 Melakukan tugas perhitungan
 Elemen lain dari sistem komputer
(control unit, register, memori, I/O)
membawa data ke ALU untuk diproses
dan mengambil hasilnya kembali
 Menangani integer
 Juga menangani bilangan floating point
(real)
 Untukmenentukan bilangan positif
negatif (signed numbers) digunakan
metode :
• Sign-Magnitude
• Two’s compliment
 Bitpaling kiri (most significant bit)
sebagai sign bit (tanda), 7 bit sisanya
adalah magnitude / bilangan absolut
 0 berarti positif
 1 berarti negatif
 +18 = 00010010
 -18 = 10010010
 Kitadapat menunjukkan bilangan dari
−12710 to +12710 jika kita menambahkan
sign bit
 Problem
• Dua bilangan nol (+0 and -0)
 Sign-magnitude
adalah metode yang
umum digunakan untuk
mempresentasikan tanda dalam bilangan
float
 Hanya memiliki satu nilai 0
 Membalik tanda sebuah bilangan
(positif/negatif) dilakukan dengan cara
membalik semua bit setelah bertemu
angka 1 pertama
 Contoh : 0101001
 Langkah pertama : mulai dari kanan,
temukan angka ‘1’ yang pertama
 Balikkan semua bit yang ada di sebelah
kiri angka ‘1’ tersebut
 Hasil : 1010111
Contoh : 0101100
 Langkah pertama : mulai dari kanan,
temukan angka ‘1’ yang pertama
 Balikkan semua bit yang ada di sebelah
kiri angka ‘1’ tersebut
 Hasil : 1010100
 +3 = 00000011
 +2 = 00000010
 +1 = 00000001
 +0 = 00000000
 -1 = 11111111
 -2 = 11111110
 -3 = 11111101
 Satu angka 0
 Aritmatika yang mudah
 Pembalikan tanda yang mudah
 Operasi
yang dilakukan selalu
penjumlahan, termasuk sign bit
 Contoh :
0111 (carry)
0111 (7)
0011 (3)
--------- +
1010 - overflow
 Jikapenjumlahan 2 bilangan n digit
menghasilkan n+1 digit maka disebut dengan
overflow
 Penjumlahan dengan komputer digital -->
overflow menjadi masalah karena ukuran
register yang terbatas
 Komputer perlu mendeteksi adanya overflow
 Overflow tidak akan terjadi pada saat
penjumlahan bilangan yang berbeda tanda
 Perhatikan 2 bit carry (sisa) paling kiri
 Jika sama (0 0 atau 1 1) maka valid
 Jika tidak sama (1 0 atau 0 1) maka
overflow
3 +4=
 -7 + 5 =
 -4 + 4 =
 (-4) + (-1) =
 (+5) + (+4) =
 (-7) + (-6) =
 Subtrahend di 2’s complement
 Contoh:

minuend

subtrahend
2 –7=
5 – 2 =
 -5 – 2 =
 5 – (-2) =
 7 – (-7) =
 (-6) – 4 =
Operasi Aritmatika
 Operasi perkalian lebih rumit
dibandingkan operasi penjumlahan atau
pengurangan, baik dalam hardware
maupun software
 Ada beberapa jenis algoritma yang
digunakan dalam bermacam-macam
komputer
1 0 1 1 Multiplicand (11)
x 1 1 0 1 Mutiplier (13)
1 0 1 1
0 0 0 0 Partial
1 0 1 1 Product
1 0 1 1
1 0 0 0 1 1 1 1 Product (143)
 Pengalian meliputi pembentukan beberapa
perkalian parsial untuk setiap digit dalam
multiplier. Perkalian parsial ini kemudian
dijumlahkan untuk mendapatkan hasil pengalian
akhir
 Bila bit multiplier sama dengan 0, maka hasil
pengaliannya 0. Bila bit multiplier 1, maka hasil
pengaliannya sama dengan mutiplicand
 Hasil pengalian akhir diperoleh dengan
menjumlahkan perkalian parsial tersebut. Setiap
hasil perkalian parsial yang berurutan digeser
satu posisi ke kiri relatif terhadap hasil perkalian
sebelumnya.
 Pengalian dua buah integer biner n-bit
menghasilkan hasil perkalian sampai 2n-bit
 Control Logic membaca bit-bit multiplier satu
persatu
 Bila Q0 = 1, multiplicand ditambahkan ke
register A; hasilnya disimpan ke register A;
setelah itu seluruh bit di register C, A dan Q
digeser ke kanan 1 bit.
 Bila Q0 = 0, tidak terjadi penambahan; seluruh
bit di register C, A dan Q digeser ke kanan 1
bit.
 Proses tersebut dilakukan secara berulang
untuk setiap bit multiplier
 Hasil perkalian akhir tersimpan di register A
dan Q.
 Dengan algoritma pengalian di atas
1011 * 1101 = 1000 1111
• Perkalian unsigned integer : 11 * 13 = 143
• Perkalian komplemen-2 : -5 * -3 = -113
 perkaliantidak berfungsi jika
multiplicand dan/atau multiplier-nya
negatif
 Ada beberapa cara untuk menangani hal
tersebut:
• konversi multiplier dan multiplicand jadi positif,
dikalikan; cari komplemen-2 dari hasilnya jika
tanda multiplier dan multiplicand berbeda
• Menggunakan algoritma lain yang tidak
memerlukan transformasi, misalnya Algoritma
Booth
 memiliki kelebihan kecepatan proses
perkaliannya, relatif terhadap
pendekatan langsung
 terdapat register Q(multiplier),
M(multiplicand), A(accumulator), dan
register 1-bit di kanan Q yg ditandai
dengan Q-1
 hasil perkalian tersimpan di A dan Q
 A dan Q-1 diinisialisasi 0
 control logic memeriksa bit-bit multiplier satu-
persatu beserta bit di kanannya
 Jika kedua bit sama (1-1 atau 0-0), maka
seluruh bit di A, Q dan Q-1 digeser 1-bit ke
kanan
 jika kedua bit berbeda, multiplicand
ditambahkan (0-1) atau dikurangkan (1-0) ke
register A, kemudian digeser ke kanan
 Pergeseran ke kanan adalah dimana bit A yang
paling kiri digeser dan selain digeser bit
tersebut tetap berada di posisi semula
 contoh : 0111 * 0011 = 0001 0101
 Dengan algoritma booth, hitunglah
a) (7) x (3) =
b) (7) x (-3) =
c) (-7) x (-3) =
Operasi Aritmatika
1 3
1 1 1 4 7
1 1
3 7
3 3
4
 1001 0011 : 1011 = 000 1101 + 0100
E A Q
0 1 0 0 1 0 0 1 1 Initial
M = 1011 1 0 0 1 0 0 1 1 0 Shift Left
M’ = 0101 (2nd-c) 0 1 0 1
1 0 1 1 1 A  A - M
1 0 1 1 1 0 1 1 1 Set Q0
0 1 1 1 0 1 1 1 0 Shift Left
0 1 0 1
1 0 0 1 1 A  A - M
1 0 0 1 1 1 1 1 1 Set Q0
0 0 1 1 1 1 1 1 0 Shift Left
0 1 0 1
0 1 1 0 0 A  A - M
1 0 1 1
1 0 1 1 1 1 1 1 0 A  A + M (restore A)
0 1 1 1 1 1 1 0 0 Shift Left
0 1 0 1
1 0 1 0 0 A  A - M
1 0 1 0 0 1 1 0 1 Set Q0
Sisa hasil bagi Hasil bagi
 Muatkan divisor ke M, dividend ke A dan Q. dividend
diekspresikan sbg komplemen-2 2n-bit.
 Geser A dan Q 1-bit ke kiri
 Bila M dan A memiliki tanda yg sama, lakukan A  A
– M; bila tandanya beda, A  A + M
 Operasi tsb akan berhasil bila tanda A sesudah dan
sebelum operasi sama
• bila berhasil (A dan Q = 0), set Q0  1
• bila gagal (A dan Q <> 0), reset Q0  0 dan
simpan A sebelumnya
 Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q
 Bila tanda divisor dan dividend sama maka quotient
ada di Q, jika tidak quotient adalah komplemen-2
dari Q.
 Remainder ada di A.
A Q M = 1101
0 0 0 0 0 1 1 1 Initial
(7) / (-3) 0 0 0 0 1 1 1 0 Shift Left
M = 1101 1 1 0 1 Add
0 0 0 0 1 1 1 0 Restore
0 0 0 1 1 1 0 0 Shift Left
1 1 1 0 Add
0 0 0 1 1 1 0 0 Restore
0 0 1 1 1 0 0 0 Shift Left
0 0 0 0 Add
0 0 0 0 1 0 0 1 Set Q0 = 1
0 0 0 1 0 0 1 0 Shift
1 1 1 0 Add
0 0 0 1 0 0 1 0 restore
 7+7 =
 -10+5=
 12+(-3)=
 -5 -1 =
 -7-10 =
6 – 5 =
 13 – 20 =
7 x 3 =
 7 x (-3) =
 -7 x -3 =
 7/3 =
 -7/3 =
 (-7)/(3)
dan (7)/(-3) akan menghasilkan
remainder yang berbeda. Hal ini disebabkan
operasi pembagian didefinisikan sebagai
D = Q *V + R
dengan
• D = dividend (bil.dibagi)  A,Q
• Q = quotient (hasil bagi) Q
• V = divisor (bil.pembagi)  M
• R = remainder (sisa) A

Anda mungkin juga menyukai