M5 - Computer Arithmetic
M5 - Computer Arithmetic
“ Computer Arithmetic ”
Arithmatic Logical Unit (ALU) Juga Bertugas membentuk fungsi – fungsi pengolahan
data komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini
mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. ALU terdiri dari dua
bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki
spesifikasi dan tugas tersendiri. Fungsi-fungsi yang didefinisikan pada ALU adalah Add
Arithmetic Logical Unit (ALU) merupakan unit penalaran secara logic. ALU ini
merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan
membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan
kemudian dikirim kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer,
maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical
Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada
CPU tersebut.
ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen
perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan
nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar
matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang dapat
melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk
menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah
matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk
melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua
buah bilangan.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah
yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh
pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan
Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat
mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya
adalah sama, maka pada level inilah suatu sistem dikatakan compatible. Sehingga sebuah
program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada
Intel tidak akan bisa dijalankan untuk semua jenis prosesor,kecuali untuk prosesor yang
compatible dengannya.
Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga
memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda
struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan
ALU (Arithmethic and Control Unit) adalah bagian dari CPU yang bertanggung jawab
dalam proses komputasi dan proses logika. Semua komponen pada CPU bekerja untuk
memberikan asupan kepada ALU sehingga bisa dikatakan bahwa ALU adalah inti dari sebuah
CPU. Perhitungan pada ALU adalah bentuk bilangan integer yang direpresentasikan dengan
bilangan biner. Namun, untuk saat ini, ALU dapat mengerjakan bilangan floating point atau
bilangan berkoma, tentu saja dipresentasikan dengan bentuk bilangan biner. ALU
mendapatkan data (operand, operator, dan instruksi) yang akan disimpan dalam register.
Kemudian data tersebut diolah dengan aturan dan sistem tertentu berdasarkan perintah control
unit. Setelah proses ALU dikerjakan, output akan disimpan dalam register yang dapat berupa
sebuah data atau sebuah instruksi. Selain itu, bentuk output yang dihasilkan oleh ALU berupa
flag signal. Flag signal ini adalah penanda status dari sebuah CPU. Bilangan Ineger Bilangan
integer (bulat) tidak dikena oleh komputer dengan basis 10. Agar komputer mengenal bilangan
integer, maka para ahli komputer mengkonversi basis 10 menjadi basis 2. Seperti kita ketahui,
bahwa bilangan berbasis 2 hanya terdiri atas 1 dan 0. Angka 1 dan 0 melambangkan bahwa 1
menyatakan adanya arus listrik dan 0 tidak ada arus listrik. Namun, untuk bilangan negatif,
computer tidak mengenal simbol (-). Komputer hanya mengenal simbol 1 dan 0. Untuk
mengenali bilangan negatif, maka digunakan suatu metode yang disebut dengan Sign
Magnitude Representation. Metode ini menggunakan simbol 1 pada bagian paling kiri (most
significant) bit. Jika terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan
tetapi, penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya -0
pada sign magnitude[0=(00000000)b; -0=(10000000)b]. Seperti kita ketahui, angka 0 tidak
i. Half Adder.
Rangkain half adder merupakan dasar bilangan biner yang masing-masing hanya terdiri
dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0. Dengan nilai pindahan Cy
(Carry Out) = 1.
Dengan demikian, half adder memiliki dua masukan (A dan B), dan dua keluaran (S dan
Cy).
d. Integer Representation
Dalam sistem bilangan biner , semua bilangan dapat direpresentasikan dengan hanya
menggunakan bilangan 0 dan 1, tanda minus, dan tanda titik.
00000000= 0
00000001= 1
00101001 = 41
10000000 = 128
11111111= 225
Umumnya bila sebuah rangkaian n-bit bilangan biner an–1an-2…a1a0 akan diinterpretasikan
sebagai unsigned integer A.
h. Integer Arithmetic
Bagian ini akan membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen
dua.
A. Negasi
Pada notasi komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan
mengunakan aturan berikut:
Anggaplah komplemen boolean seluruh bit bilangan integer (termasuk bittanda).
Perlakukan hasilnya sebagai sebuah unsigned binary integer, tambahkan1.
misalnya:18=00010010 (komplemen dua).
B. Representasi Integer Positif,negatif,dan bilangan 0.
Bila sebuah bilangan integer positif dan negatif yang sama direpresentasikan (sign –
magnitude),maka harus ada representasi bilangan positif dan negatif yang tidak sama. Bila
hanya terdapat sebuah representasi bilangan 0 (komplemen dua),maka harus ada
representasi bilangan positif dan negatif yang tidak sama. Pada kasus komplemen
dua,terdapat representasi bilangan n-bit untuk -2n,tapi tidak terdapat untuk 2n.
Aturan Pengurangan :
Untuk mengurangkan sebuah bilangan (subtrahend) dari bilangan lainnya (minuend),
anggaplah komplemen dua subtrahend dan tambahkan hasilnya ke minuend.
Pembulatan :
Teknik pembulatan yang sesuai dengan standard IEEE adalah sebagai berikut :
Floating Point adalah tipe data yang dapat menyimpan angka dengan pecahan. VB
membedakan menjadi dua jenis, yaitu:
±S * B ±E
Tanda : ( + atau – )
Signifikan (S) disebut juga mantissa
Eksponen (E)
Exponensial
4. Perkalian
Perkalian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan Y = mx * 2 b
setara dengan X * Y = (mx * my) * 2 a+b.
Algoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah:
i. Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua
bilangan
ii. Kalikan kedua bilangan mantissa
iii. Normalisasi hasil akhir
Contoh : Perkalian dua bilangan floating point X = 1,000 * 2 2 dan Y = 1,010*2 1
i. Tambahkan bilangan exponennya : 2+ (1) = 3
ii. Kalikan mantissa: 1,0000 * 1,010 = 1,010000 Hasil perkaliannya adalah 1,0100
* 23
5. Pembagian
Pembagian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan Y = mx * 2 b
setara dengan X / Y = (mx / my) * 2 ab.
Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga langkah :
i. Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua
bilangan
ii. Bagi kedua bilangan mantissa
iii. Normalisasi hasil akhir
Contoh : Pembagian antara dua bilangan floating point X = 1,0000 * 2 2 dan Y = 1,0100 * 2 1
a. Kurangkan bilangan exponennya : 2 – (1) = 1
http://cahyomuhajir.blogspot.com/2012/01/aritmetic -logic-unit.html?m=1
(sumber: buku pengenalan komputer, hal 154-155, karangan prof.dr.jogiyanto h.m, m.b.a.,akt.)
http://lookupmens.blogspot.com/2011/03/pengertian-dan-cara-kerja-arithmatic.html
http://id.wikipedia.org/wiki/ALU
http://firmaninformatika.blogspot.co.id/2014/12/integer-arithmetic.html