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 11111111 2 (sama dengan -127 10 ) sampai dengan 01111111 2 (sama dengan +127 10 ). 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 +0 10 pada 0000 2 dan -0 10 pada 1000 2. 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. +15 10 c. +27 10 b. -15 10 d. -27 10 Jawab : a. + 15 10 = 0000 0000 0000 1111 2 b. 15 10 = 1000 0000 0000 1111 2 c. + 27 10 = 0000 0000 0001 1011 2 d. 27 10 = 1000 0000 0001 1011 2 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 : 1 1 1 1 1 1 Bit-bit carry 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 + 1 0 0 0 1 1 0 0 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 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 17 b. 9 4 = 5 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 C o ). S adalah hasil penjumlahan dan C o adalah sisa. C o merupakan singkatan dari Carry Output. Tabel kebenaran yang menunjukkan fungsi Half Adder adalah : Tabel 5.3. Tabel Kebenaran Fungsi Half Adder Input Output A B C o S 0 0 0 0 0 1 0 1 1 0 0 1 1 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 C o dengan implementasi dalam bentuk Sum of Product (jumlah dari hasil kali) yaitu : 87
S = AB+ C o = A B AB Dari persamaan di atas, tampak bahwa S adalah fungsi EX-OR ( A B ). Fungsi Boolean untuk S dan C o dengan implementasi dalam bentuk Product of Sum (hasil kali dari jumlah) yaitu : S = ( A+ B) ( A+ B) C o = 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 C in ) dan dua output (S dan C o ). Dua variabel masukan (A dan B) merupakan dua bit yang dijumlahkan, dan masukan ketiga 88
(C in ) merupakan carry dari bit dengan orde/derajat yang lebih rendah. Tabel kebenaran untuk Full Adder adalah : Tabel 5.4. Tabel Kebenaran Fungsi Full Adder Input Output A B C in C o S 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 Dengan menggunakan K-Map untuk masing-masing output didapat persamaan Boolean: S = ABC + 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 Output X Y B D 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 Dari tabel kebenaran di atas diperoleh : D = XY + = X Y B= XY X Y 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 Input Output X Y Z B D 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Dengan menggunakan K-map, didapat persamaan Boolean untuk Full Subtractor : D = X YZ + XY Z + X Y Z + XYZ 92
B = XY + 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 : Jika SUB = 1, maka : 0001 1000 24 0001 1000 24 0001 0000 + 16 + B 1111 0000 + -16 + 0010 1000 40 0000 1000 8 94
5.6 Soal-soal Latihan 1. 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