Setelah memahami konsep-konsep dasar operasi logik pada bab 2, pada bab 3 ini akan
diuraikan tentang operasi aritmatik. Kedua operasi ini yaitu operasi logik dan operasi aritmatik
merupakan dasar dari seluruh kegiatan yang ada pada teknik mikroprosessor dan hampir semua
instruksi pada mikroprosessor berdasar pada kedua operasi ini. Dasar operasi aritmatik adalah
PENJUMLAHAN dan PENGURANGAN, sedangkan operasi selanjutnya yang dikembangkan dari
kedua operasi dasar tersebut adalah operasi PERKALIAN dan operasi PEMBAGIAN.
Penjumlahan Bilangan Perjumlahan adalah salah satu operasi aritmatika dasar. Perjumlahan
merupakan
penambahan sekelompok bilangan atau lebih menjadi suatu bilangan yang merupakan
BAB
jumlah. Penjumlahan ditulis dengan menggunakan tanda tambah "+" diantara kedua
bilangan. Hasil dari penjumlahan dinyatakan dengan tanda sama dengan "="
Misalnya penjumlahan bilangan desimal 273 dengan bilangan desimal 189, dapat
dilakukan dengan langkah-langkah sebagai berikut :
digit paling kanan 3 dan 9 dijumlahkan dan didapatkan hasil 12,
melebihi nilai 9, maka dikurangi dengan 10, didapat hasil 2
dengan carry of 1.
Bilangan biner dijumlahkan dengan cara yang sama dengan penjumlahan bilangan
desimal. Dasar penjumlahan untuk masing-masing digit bilangan biner adalah :
Dengan carry of 1, yaitu 1 + 1 = 2, karena digit terbesar biner
hanya 1, maka harus dikurangi dengan 2 (basis), jadi 2 – 2 = 0
dengan carry of 1
Diketahui sebuah Data A = 10011010 dan Data B = 01001001 akan dijumlahkan dan
tentukan hasilnya?
Penyelesaian :
Data A = 1 0 0 1 1 0 1 0 ≅ 15410
Data B = 0 1 0 0 1 0 0 1 ≅ 7310
Carry = 11
Hasil A + B = 1 1 1 0 0 0 1 1 ≅ 22710
Diketahui sebuah Data A = 10011010 dan Data B = 11100011 akan dijumlahkan dan
tentukan hasilnya?
Penyelesaian :
Data A = 1 0 0 1 1 0 1 0 ≅ 15410
Data B = 1 1 1 0 0 0 1 1 ≅ 22710
Carry = 1 1
Hasil A + B = 1 0 1 1 1 1 0 1 ≅ 38110
Hasil penjumlahan di atas menjadi 9 bit data, sehingga untuk 8 bit data, hasil
penjumlahannya bukan merupakan jumlah 8 bit data A dan B tetapi bit yang ke-8
(dihitung mulai dari 0) atau yang disebut carry juga harus diperhatikan, sebagai hasil
penjumlahan.
Penjumlahan oktal dapat juga dilakukan dengan bantuan tabel sebagai berikut :
Tabel 1.1. hasil dari penjumlahan digit oktal
0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 2 3 4 5 6 7 10
2 4 5 6 7 10 11
3 6 7 10 11 12
4 10 11 12 13
5 12 13 14
6 14 15
7 16
Diketahui Bilangan Oktal A = 2328 dan bilangan Oktal B = 1118 akan dijumlahkan dan
tentukan hasilnya?
Contoh Soal 3.4
25
127
------ +
154
21
87
------ +
108
desimal oktal
510 + 710 = 1210 = 148
210 + 210 + 110 = 510 = 58
110 = 110 = 18
25
127
------- +
14 58 + 78 = 148
4 28 + 28 = 48
1 08 + 18 = 18
-------- +
154
Contoh Soal 3.5
Contoh Soal 3.6
Penyelesaian :
Bilangan Oktal A = 2 3 2 8 = 15410
Bilangan Oktal B = 1 1 1 8 = 7310
Carry
Hasil A + B = 3 4 3 8 = 22710
Diketahui Bilangan Oktal A = 4248 dan bilangan Oktal B = 25678 akan dijumlahkan dan
tentukan hasilnya?
Penyelesaian :
Bilangan Oktal A = 4 2 4 8
Bilangan Oktal B = 2 5 6 7 8
Carry 1 1 1
Hasil A + B = 3 2 1 3 8
Diketahui Bilangan desimal A = 2959 dan bilangan desimal B = 1073 akan dijumlahkan
dan tentukan hasilnya?
Penyelesaiannya :
BAD
431
------ +
FDE
2959
1073
--------- +
4062
desimal heksadesimal
Diketahui Bilangan desimal A = 3258 dan bilangan desimal B = 1575 akan dijumlahkan
dan tentukan hasilnya?
Penyelesaiannya :
CBA
627
------ +
12E1
3258
1575
--------- +
4833
desimal heksadesimal
Beberapa contoh pengurangan biner a) tanpa terjadi peminjaman digit dan b) terjadi
peminjaman sebuah bit 1 kolom sebelah kirinya.
Penyelesaiannya :
0-0=0
1-0=1
1-1=0
0 - 1 = 1,
Contoh Soal 3.11
11011
1001
---------- -
10010
27
9
--------- -
18
Desimal Binari a
11101
1011
---------- -
10010
29
11
--------- -
18
Desimal Binari b
1–1 = 0
0 – 1 = 1 dengan borrow of 1
1–0–1 = 0
1–1 = 0
1–0 = 1
1 0 0 1 0
Tidak dapat meminjam sebuah bit 1 di kolom sebelahnya, karena yang akan
dipinjam tidak bernilai 1, tetapi 0, sehingga harus dipinjam di kolom sebelahnya
lagi yang bernilai bit 1.
11001
10011
---------- -
00110
25
19
--------- -
6
Desimal Binari
Diketahui Bilangan A = 859 dan dikurangi dengan bilangan B = 523, maka tentukan
hasilnya dengan komplemen 9?
Penyelesaiannya :
1–1 = 0
0 – 1 = 1 dengan borrow of 1
0 – 0 – 1 = 1 dengan borrow of 1
1–0–1 = 0
1–1 = 0
0 0 1 1 0
Contoh Soal
859
476
-------- +
1 335
1
----------- +
336
Perhatikan bahwa pad komplemen 9, digit 1 paling ujung kiri dipindahkan untuk
ditambahkan pada digit yang paling kanan.
Komplemen 10 dari nilai 24 adalah 76 (yaitu 100 – 24 = 76 atau hasil dari komplemen
9 ditambah satu), komplemen 10 dari nilai 321 adalah 679 (yaitu 1000 – 321 = 679
atau hasil dari komplemen 9 ditambah 1) dan sebagainya.
Diketahui Bilangan desimal A = 859 dikurangi dengan bilangan desimal B = 523, maka
tentukan hasilnya dengan komplemen 10?
Penyelesaiannya :
Dengan komplemen 10, hasil digit 1 paling ujung kiri dibuang, tidak dipergunakan.
Secara sama, komplemen 1 di sistem bilangan biner dilakukan dengan
mengurangkan masing-masing bit dari nilai bit 1, atau dapat dengan cara lain yaitu
merubah semua bit 0 menjadi 1 dan semua bit 1 manjadi bit 0. Misalnya komplemen 1
dari bilangan biner 10110 adalah 01001 (yaitu 1111 – 10110).
dibuang
Adalah 476 + 1
859
523
--------- -
336
Pengurangan desimal cara biasa Komplemen 10
Pengurangan
desimal cara biasa
Pengurangan
biner cara biasa
Komplemen 1
25
22
------- -
3
11001
10110
------------ -
00011
11001
01001
-------------- +
1 00010
1
--------------- +
00011
adalah 11111 - 10110
Dengn komplemen 1, hasil digit 1 paling ujung kiri dipindahkan untuk ditambahkan
pada bit paling kanan.
Komplemen 2 adalah hasil dari komplemen 1 ditambah dengan 1, misalnya
komplemen 2 dari bilangan biner 10110 adalah 01010 (dari komplemen 1 yaitu 01001
ditambah 1).
Diketahui Bilangan desimal A = 25 dan dikurangi dengan bilangan desimal B = 22,
maka tentukan hasilnya berdasarkan bilangan biner dengan komplemen 2?
Penyelesaiannya :
Dengn komplemen 1, hasil digit 1 paling ujung kiri dibuang, tidak dipergunakan.
3.4.2.2 Pengurangan Bilangan Oktal
Pengurangan bilangan oktal dapat dilakukan dengan cara sama dengan
pengurangan bilangan desimal.
Diketahui Bilangan desimal A = 108 dikurangi dengan bilangan desimal B = 87, maka
tentukan hasilnya berdasarkan bilangan oktal ?
Penyelesaiannya :
Atau dapat juga dilakukan dengan menggunakan tabel pertambahan digit oktal
sebagai berikut :
Pengurangan
desimal cara biasa
25
22
------- -
3
Pengurangan
binere cara biasa
Komplemen 2
11001
10110
------------ -
00011
11001
01001
-------------- +
1 00011
dibuang
adalah 01001 + 1
Desimal Oktal
108
87
------------ -
21
154
127
-------------- -
25
108 (pinjam) + 48 - 78 = 58
58 - 28 - 18 (dipinjam) = 28
18 - 18 = 08
154
127
-------------- -
25
148 - 78 = 58
58 - 28 - 28 = 28
18 - 18 = 08
(pada tabel 1.1 kolom digit 7 yang
bernilai 14 adalah baris digit 5)
Hal 46
Bilangan biner A = 1 0 0 1 1 0 1 1
+1
Decrement A = 1 0 0 1 11 0 0
Bilangan heksadesimal B = 7 F
+1
Increment B = 8 0
Bilangan biner A = 1 0 0 1 1 0 1 1
-1
Decrement A = 1 0 0 1 1 0 1 0
Bilangan heksadesimal B = 7 F
-1
Decrement B = 7 E
Increment dan decrement biasanya digunakan dalam pembuatan program Penghitung
Naik ( Up-Counter ) dan Penghitung Turun ( Down-Counter )
Untuk bilangan biner pengalinya hanya berharga 0 atau 1, oleh karena itu
perkalian bilangan biner hanya memerlukan operasi penjumlahan dan operasi
geseran.
Bilangan desimal A = 156 dibagi dengan bilangan desimal B = 13, dapat diselesaikan
dengan cara seperti di bawah ini,
Penyelesaian :
A : B = 12
156 : 13 = 12
13
26
26
0
binari
110000,001 : 101 = 1001,101
101
1000
101
110
101
101
101
0
Tabel 1.3 bilangan biner, desimal dan heksadesimal dibandingkan terhadap bentuk BCD-
Code
Desimal BCD Biner Heksadesimal
0 0000
0000
0
1 0001 0001 1
2 0010 0010 2
3 0011
0011
3
4 0100 0100 4
5 0101 0101 5
6 0110 0110 6
7 0111 0111 7
8 1000 1000 8
9 1001 1001 9
10
TIDAK DIIJINKAN
1010
A
11 TIDAK DIIJINKAN 1011 B
12 TIDAK DIIJINKAN 1100 C
13 TIDAK DIIJINKAN 1101 D
14 TIDAK DIIJINKAN 1110 E
15
TIDAK DIIJINKAN
1111
F
Keterangan
1) Echte Tetraden ( 8421 Code )
2) Pseudotetrades
*) Dinyatakan pada tempat kedua ( dikoreksi sebagai puluhan dan satuan )
Jika kita bandingkan bentuk bilangan di atas dengan bentuk BCD, tampak bahwa
setiap tempat ( dekade ) dari bilangan desimal memerlukan 4 group ( = Tetrade ) dari
bilangan biner dan tetrade ini tidak lagi dinyatakan dalam bilangan heksadesimal tetapi
dalam bilangan desimal. Kombinasi yang termasuk dalam BCD Code dinyatakan sebagai
Echte Tetraden sedangkan informasi yang tidak termasuk dalam BCD Code dinyatakan
1)
*)
«Sistem Komputer»
Hal 50
sebagai Pseudotetrades. Keberadaan Pseudotetrades dalam operasi aritmatik mempunyai
arti yang sangat penting, yaitu bahwa hasil operasi aritmatik tidak diijinkan berada di daerah
Pseudotetrades ini. Jika ternyata hasil operasi aritmatik dalam BCD Code berada pada
daerah Pseudotetrade , maka hasil operasi tersebut harus dikoreksi.
Hasil = 1 0 1 0 1
Jadi penjumlahan di atas menghasilkan (bentuk
BCD)
Koreksi pada contoh 2 menghasilkan Carry untuk tempat yang lebih tinggi
(puluhan), sehingga hasil penjumlahan setelah dikoreksi menghasilkan bilangan
desimal 2 tempat yaitu 1 (satu) puluhan dan 5 (lima) satuan yang dalam bilangan
desimal disebut 1510 (lima belas) sebagai hasil penjumlahan antara 710 (tujuh) dengan
Contoh Soal 3.24
+
Contoh Soal 3.25
+
+
0001
Puluhan
0101
Satuan
«Sistem Komputer»
Hal 51
810 (delapan) Untuk penjumlahan bilangan yang lebih besar dapat dilakukan seperti
pada contoh di atas hanya saja harus diperhatikan cara-cara mengoreksi setiap hasil
sementaranya.
Dari Bilangan A = 0111 0100 1000 ( = 74810 ) dalam bentuk BCD akan dibentuk
Komplemen Sembilan dan Komplemen Sepuluh,
Bilangan BCD tertinggi = 1 0 0 1 1 0 0 1 1 0 0 1
Bilangan A = 0 1 1 1 0 1 0 0 1 0 0 0
K ( 9 ) dari A = 0 0 1 0 0 1 0 1 0 0 0 1
K ( 10 ) dari A = 0 0 1 0 0 1 0 1 0 0 1 0
Dari Bilangan B = 0101 0100 1001 dan bilangan A = 0111 0011 1000 dalam bentuk
BCD Code. Nyatakan hasil A – B .
Bilangan A = 0 1 1 1 0 0 1 1 1 0 0 0
K ( 10 ) dari B = 0 1 0 0 0 1 0 1 0 0 0 1
Carry 1 111
Hasil Sementara = 1 0 1 1 10 0 0 1 0 0 1
Koreksi = 0 1 1 0 0 0 0 0 0 0 0 0
Carry 1 1 1
Hasil A – B = 1 0 0 0 1 1 0 0 0 1 0 0 1
+ 0 0 0 1 1 0 0 0 1 0 0 1 = 18910
Karena hasilnya mempunyai tanda + ( positip ) maka hasilnya tidak perlu dikoreksi lagi. Di
bawah ini adalah contoh yang hasilnya masih harus dilakukan Komplemen Sepuluh sekali
lagi karena menghasilkan tanda – ( negatip ).
Dari Bilangan B = 0101 0100 1001 dan bilangan A = 0111 0011 1000 dalam bentuk
BCD Code. Nyatakan hasil B – A.
Bilangan B = 0 1 0 1 0 1 0 0 1 0 0 1
K ( 10 ) dari A = 0 0 1 0 0 1 1 0 0 0 1 0
Carry 1
Hasil Sementara = 0 1 1 1 1 0 1 0 1 0 1 1
Koreksi = 0 0 0 0 0 1 1 0 0 1 1 0
Carry 1111 11 1 11
Hasil B – A = 0 1 0 0 0 0 0 0 1 0 0 0 1
K ( 10 ) dari Hasil 0001 1000 1001
Hasil Akhir B – A - 0 0 0 1 1 0 0 0 1 0 0 1 = -18910