BAB V RANGKAIAN ARIMATIKA
5.1
REPRESENTASI BILANGAN NEGATIF Terdapat dua cara dalam merepresentasikan bilangan biner negatif, yaitu :
1. Representasi dengan Tanda dan Nilai (Sign-Magnitude) 2. Representasi dengan Komplemen-2
5.1.1 Representasi bilangan Sign-magnitude Representasi bilangan biner sign-magnitude kadang disebut juga dengan Bilangan Biner Bertanda. Menyatakan bilangan negatif pada sistem bilangan biner, menggunakan bit paling berarti (MSB) untuk menunjukkan bit tanda. Ketika bit MSB bernilai ‘0’ maka bilangan biner tersebut bernilai positif, sedangkan ketikan bit MSB bernilai ‘1’ berarti bilangan biner tersebut bernilai negatif). Kemudian bit-bit sisanya menyatakan besaran bilangan biner. Berikut format bilangan biner sign-magnitude pada bilangan biner 8 bit : B7 B6 B5 B4 B3 B2 B1 B0
Tanda
Nilai
Gambar 5.1 Format Bilangan Biner Sign-Magnitude pada Bilangan Biner 8 Bit
Dengan demikian sebuah bilangan biner 8 bit akan mencakup 111111112 (sama dengan -12710) sampai dengan 011111112 (sama dengan +12710). Tabel berikut akan menunjukkan perbandingan bilangan biner positif dan negatif pada bilangan biner 4 bit :
Tabel 5.1 Perbandingan Bilangan Biner Positif dan Negatif pada Bilangan Biner 4 Bit
Desimal
Bil. Biner Bertanda
+7
0111
+6
0110
+5
0101
+4
0100
+3
0011
+2
0010
+1
0001
+0
0000
-7
1111
-6
1110
-5
1101
-4
1100
-3
1011
-2
1010
-1
1001
-0
1000
Dari tabel di atas terlihat bahwa terdapat dua bilangan untuk merepresentasikan bilangan 0, yaitu +010 pada 00002 dan -010 pada 10002. Dalam kenyataanya, dalam sistem bilangan desimal bilangan +0 dan -0 merupakan bilangan yang sama yaitu 0. Sehingga di sini kita bisa menarik suatu kesimpulan bahwa walaupun sistem bilangan sign-magnitude ini mudah dalam pengerjaannya, tetapi bilangan ini
memiliki
dua
kekurangan
yaitu
terdapatnya
dua
bilangan
untuk
merepresentasikan bilangan 0 dan sulit diimplementasikan rangkaian logikanya, karena operasi aritmatika antar bilangan biner negatif dan bilangan biner positif tidak bisa dilakukan secara langsung sehingga diperlukan rangkaian logika tambahan untuk penyesuai bilangan biner negatif tersebut.
82
Contoh 5.1 Nyatakan setiap bilangan berikut sebagai bilangan biner bertanda 16 bit. a. +1510
c. +2710
b. -1510
d. -2710
Jawab : a. + 1510 = 0000 0000 0000 11112 b. – 1510 = 1000 0000 0000 11112 c. + 2710 = 0000 0000 0001 10112 d. – 2710 = 1000 0000 0001 10112
5.1.2 Representasi Bilangan dengan Komplemen-2 Representasi bilangan biner yang lain adalah dengan komplemen-2. Representasi sign magnitude semata-mata hanya dengan pengubahan tanda, sedangkan representasi dengan komplemen-2 ini prosedurnya agak lebih rumit. Ada cara tertentu yang harus dikerjakan untuk melakukan konversi dari suatu bilangan biner posotif ke bilangan biner negatif. Tetapi seperti halnya bilangan biner bertanda, bit MSB pada bilangan komplemen-2 juga menyatakan polaritas suatu bilangan, yaitu : jika bit MSB bernilai ‘0’ maka bilangan biner tersebut bernilai positif, sebaliknya jika bit MSB bernilai ‘1’ maka bilangan biner tersebut bernilai negatif. Berikut langkah-langkah dalam mengkonversikan bilangan biner positif ke bilangan biner negatif ataupun sebaliknya yang direpresentasikan dalam bentuk komplemen-2 : •
Ubah semua bit ‘0’ menjadi ‘1’, dan bit ‘1’ menjadi ‘0’, sehingga akan diperoleh komplemen-1
•
Tambahkan 1 pada bilangan komplemen-1 tersebut menggunakan penjumlahan biner biasa. Hasil penjumlahan tersebut merupakan bilangan komplemen-2.
Tabel 5.2 berikut menunjukkan perbandingan bilangan biner positif dan negatif dalam representasi komplemen-2.
83
Tabel 5.2 Perbandingan Bilangan Biner Positif dan Negatif dalam Representasi Komplemen-2
Desimal
Bil. Komplemen-2
+7
0111
+6
0110
+5
0101
+4
0100
+3
0011
+2
0010
+1
0001
+0
0000
-7
1001
-6
1010
-5
1011
-4
1100
-3
1101
-2
1110
-1
1111
-0
0000
Contoh 5.2 Bagaimanakah komplemen-2 dari : A = 0011 0010 0110 1100, dan nyatakan bilangan komplemen-2 tersebut dalam desimal. Jawab : •
Ubah semua bit ‘0’ menjadi ‘1’, dan bit ‘1’ menjadi ‘0’ A = 0011 0010 0110 1100 A’ = 1100 1101 1001 0011
•
→ komplemen-1
Tambahkan 1 pada bilangan komplemen-1 1100 1101 1001 0011 1 1100 1101 1001 0100
+ → komplemen-2
84
5.2
Penjumlahan dan Pengurangan Biner
5.2.1 Penjumlahan Aturan aritmatika untuk penjumlahan bilangan biner adalah : •
0+0=0
•
0+1=1
•
1+0=1
•
1 + 1 = 10 Tiga operasi yang pertama menghasilkan jumlah yang besarnya satu digit.
Pada penjumlahan yang keempat dihasilkan dua digit yaitu 10. Bit dengan derajat yang lebih tinggi (1) pada hasil penjumlahan disebut carry (bawaan) dan akan ditambahkan pada digit berikutnya yang lebih tinggi.
Contoh 5.4 Jumlahkan bilangan biner 11100 dengan 11010. Jawab : •
Mulai dari bit LSB, yang menghasilkan 0. 11100 11010 + 0
•
Berikutnya jumlahkan bit-bit kolom kedua. Pada tahap ini 0+1 = 1 11100 11010 + 10
•
Pada kolom ketiga 1+0 = 1, sehingga 11100 11010 + 110
•
Kolom keempat menghasilkan : 11100 11010 + 0110 Seperti kita lihat, 1+1 = 0 dengan carry 1. Bit carry tersebut ikut dijumlahkan dengan penjumlahan bit pada kolom kelima.
85
•
Kolom kelima akan menghasilkan : 11100 11010 + 110110 Di sini, 1 + 1 + 1(carry) menghasilkan 1 dan carry 1. Carry 1 ditulis sebagai 1 pada kolom berikutnya.
Contoh 5.5 Jumlahkanlah bilangan biner 01010111 dan 00110101 Jawab : 111
1 1 1 ← Bit-bit carry
01010111 00110101 + 10001100
5.2.2 Pengurangan Operasi dasar pengurangan biner : 0–0=0 0 – 1 = pinjam (borrow) 1 1–0=1 1–1=0 Misalnya x adalah variable yang dikurangi dan y adalah variable pengurang. Untuk mengurangkan variabel x dan y, harus dilihat besar relatifnya terlebih dahulu. Jika x ≥ y, ada tiga kemungkinan : 0 – 0 = 0, 1 – 0 = 1 dan 1 – 1 = 0. Hasil tersebut dinamakan selisih. Apabila x ≤ y (seperti pada operasi kedua) yaitu 0 – 1, maka dibutuhkan pinjaman 1 dari bit yang lebih tinggi. Dengan adanya pinjaman tersebut operasi pengurangan menjadi 10 – 1 = 1.
Contoh 5.6 Pecahkanlah pengurangan-pengurang berikut ini, dan lakukan juga pengurangan dalam bilangan biner ! a. 27 – 10 b. 9 – 4
86
Jawab : a. 27 – 10 = 17 00011011 00001010 – 0 0 0 1 0 0 0 1 → 17 b. 9 – 4 = 5 00001001 00000100 – 00000101 → 5
5.3
Rangkaian Penjumlah (Adder) Rangkaian logika kombinasi yang melakukan operasi penjumlahan 2 (dua)
bit disebut Half Adder (Penjumlah Paruh). Rangkaian yang melakukan penjumlahan tiga bit (penjumlahan dua bit biner dan satu bit bawaan sebelumnya) disebut Full Adder (Penjumlah Penuh).
5.3.1 Half Adder Rangkaian Half Adder mempunyai dua input biner (A dan B) dan dua output biner (S dan Co). S adalah hasil penjumlahan dan Co adalah sisa. Co merupakan singkatan dari Carry Output. Tabel kebenaran yang menunjukkan fungsi Half Adder adalah : Tabel 5.3. Tabel Kebenaran Fungsi Half Adder
Input A 0 0 1 1
Output B 0 1 0 1
Co 0 0 0 1
S 0 1 1 0
Keluaran S merupakan bit yang paling kurang berarti (Least Significant Bit, LSB) dari hasil penjumlahan. Dari tabel di atas didapat Fungsi Boolean untuk S dan Co dengan implementasi dalam bentuk Sum of Product (jumlah dari hasil kali) yaitu :
87
S = AB + AB
Co = A B Dari persamaan di atas, tampak bahwa S adalah fungsi EX-OR ( A ⊕ B ). Fungsi Boolean untuk S dan Co dengan implementasi dalam bentuk Product of Sum (hasil kali dari jumlah) yaitu :
S = ( A + B ) ( A + B) Co = A B Dari persamaan di atas, dapat dibuat implementasi rangkaian logika untuk half adder, yaitu :
Gambar 5.2. Rangkaian Logika Half Adder
Simbol Half Adder dapat dilihat pada gambar berikut :
Gambar 5.3. Simbol Half Adder
Half adder tersebut terbatas kemampuannya karena hanya dapat menjumlahkan dua bit tunggal. Meskipun dapat menghasilkan bawaan untuk pasangannya penjumlahan berikutnya, rangkaian tersebut tidak dapat menerima bawaan dari pasangan bit dengan kedudukan yang lebih rendah. 5.3.2 Full Adder Full Adder adalah rangkaian kombinasi yang menjumlahkan tiga input biner, terdiri dari tiga input (A, B dan Cin) dan dua output (S dan Co). Dua variabel masukan (A dan B) merupakan dua bit yang dijumlahkan, dan masukan ketiga
88
(Cin) merupakan carry dari bit dengan orde/derajat yang lebih rendah. Tabel kebenaran untuk Full Adder adalah : Tabel 5.4. Tabel Kebenaran Fungsi Full Adder
A 0 0 0 0 1 1 1 1
Input B 0 0 1 1 0 0 1 1
Output Cin 0 1 0 1 0 1 0 1
Co 0 0 0 1 0 1 1 1
S 0 1 1 0 1 0 0 1
Dengan menggunakan K-Map untuk masing-masing output didapat persamaan Boolean:
S = A BC + ABC + ABC + ABC C o = AB + AC + BC
Dari persamaan di atas, dapat dibuat implementasi rangkaian logika untuk full adder, yaitu :
Gambar 5.4. Rangkaian Logika Full Adder
89
Simbol Full Adder dapat dilihat pada gambar berikut :
Gambar 5.5. Simbol Full Adder
Gambar 5.6 menampilkan blok diagram dari penjumlah biner 4 bit. Prinsip penjumlahan adalah menjumlahkan bit per bit. A dan B adalah bilangan biner yang akan dijumlahkan, S merupakan hasil penjumlahan, sedangkan C merupakan carry yang dihasilkan dari penjumlahan bit-bit yang sebelumnya (penjumlahan bit
yang satu derajat lebih rendah). Pada penjumlahan bit-bit LSB, cukup digunakan half adder karena hanya menjumlahkan 2 bit. Sedangkan untuk bit-bit berikutnya, digunakan full adder karena carry dari penjumlahan bit yang sebelumnya ikut dijumlahkan. Gambar 5.7 memperlihatkan blok diagram dari penjumlah yang menjumlahkan bilangan desimal 12 dan 9.
Gambar 5.6. Penjumlah Biner 4 bit
90
Gambar 5.7. Penjumlahan 12 dan 9
5.4
Rangkaian Pengurang (Subtractor) Rangkaian logika kombinasi yang melakukan operasi pengurangan 2 (dua)
bit disebut Half Subtractor (Pengurang Paruh). Rangkaian yang melakukan pengurangan tiga bit disebut Full Subtractor (Pengurang Penuh).
5.4.1 Half Subtractor Rangkaian kombinasi Half Subtractor mengurangkan antara 2 bit dan menghasilkan output selisih serta output yang menunjukkan adanya borrow (meminjam 1 dari bit signifikan yang lebih tinggi). Half Subtractor membutuhkan dua output. Output pertama adalah nilai selisih (D) dan output kedua menunjukkan borrow (B). Tabel 5.5. Tabel Kebenaran Fungsi Half Subtractor
Input X 0 0 1 1
Output Y 0 1 0 1
B 0 1 0 0
D 0 1 1 0
Dari tabel kebenaran di atas diperoleh : D = XY + X Y
= X ⊕Y B = XY
91
Dari persamaan di atas, dapat dibuat implementasi rangkaian logika untuk half subtractor, yaitu :
Gambar 5.8. Rangkaian Logika Half Subtractor
Simbol Half Subtractor dapat dilihat pada gambar berikut :
Gambar 5.9. Simbol Half Subtractor
5.4.2 Full Subtractor Rangkaian Full Subtractor mempunyai tiga input dan dua output. Ketiga variabel input X, Y, dan Z mewakili bilangan yang dikurangi, pengurang dan adanya borrow oleh bit yang lebih rendah. Sedangkan output D adalah selisih dan B adalah borrow ke bit yang lebih tinggi. Tabel 5.6. Tabel Kebenaran Fungsi Full Subtractor
X 0 0 0 0 1 1 1 1
Input Y 0 0 1 1 0 0 1 1
Output Z 0 1 0 1 0 1 0 1
B 0 1 1 1 0 0 0 1
D 0 1 1 0 1 0 0 1
Dengan menggunakan K-map, didapat persamaan Boolean untuk Full Subtractor : D = X Y Z + X Y Z + X Y Z + XYZ
92
B = X Y + X Z + YZ
Dari persamaan di atas, dapat dibuat implementasi rangkaian logika untuk full subtractor, yaitu :
Gambar 5.10. Rangkaian Logika Full Subtractor
5.5
Penjumlah Pengurang Komplemen-2 Komputer-komputer terdahulu menggunakan bilangan biner bertanda baik
untuk bilangan positif maupun bilangan negative. Representasi ini menghasilkan rangkaian aritmatik yang rumit. Kemudian para ahli menemukan bahwa representasi komplemen-2 sangat berhasil dalam menyederhanakan perangkat keras aritmatik tersebut. Oleh karena itu penjumlah-pengurang komplemen-2 dipergunakan secara luas sebagai rangkaian aritmatik. Gambar berikut menunjukkan rangkaian penjumlah-pengurang 4 bit.
Gambar 5.11. Rangkaian Penjumlah-Pengurang 4 Bit
93
Prinsip kerja rangkaian : •
Ketika SUB bernilai rendah (bernilai 0), bit-bit B akan melewati inverter terkendali tanpa mengalami inversi, sehingga keluarannya akan menjadi : S=A+B
•
Jika SUB bernilai tinggi (bernilai 1), inverter terkendali menghasilkan komplemen-1, dan keadaan SUB yang tinggi akan menambahkan angka 1 kepada full adder pertama, sehingga keluarannya : S = A + B’
B’ adalah komplemen-2 dari B
persamaan tersebut ekivalen dengan : S=A–B
Gambar 5.12 berikut merupakan implementasi rangkaian penjumlahpengurang 8 bit yang dibangun dari 2 buah IC 7483 yang merupakan IC penjumlah-pengurang 4 bit.
Gambar 5.12 Rangkaian Penjumlah-Pengurang 8 Bit
Misal : A = 0001 1000 B = 0001 0000
Jika SUB = 0, maka : 0001 1000
Jika SUB = 1, maka : 24
0001 0000 + 16 + 0010 1000
40
0001 1000 B’
24
1111 0000 + -16 + 0000 1000
8
94
5.6 1.
Soal-soal Latihan Ubahlah bilangan biner bertanda berikut ke dalam bilangan desimal. a. 0000 0000 0000 1100 b. 1000 0000 0010 1101 c. 1000 0000 0101 0001 d. 0000 0000 1010 0011
2.
Tentukan representasi komplemen-2 dari -20 dalam 8 bit !
3.
Bilangan
desimal
berapakah
yang
diungkapkan
dalam
representasi
komplemen-2 dari : 1111 0011 4.
Jumlahkan 2 digit terakhir NIM anda. Kemudian nyatakan bilangan positif dan bilangan negatif dari hasil penjumlahan tersebut ke dalam bilangan biner bertanda (sign-magnitude) dan bilangan komplemen-2.
95