Kamis, 07 Juni 2018

ARITMATIKA KOMPUTER


                                                    ARITMATIKA KOMPUTER

Rangkaian aritmatika merupakan konsep dasar yang melandasi pemrosesan logika dan aritmatika di sistem komputer modern. Pada artikel ini dijelaskan bagaimana realisasi penjumlah binary di dalam konsep aritmatika biner diimplementasikan dalam rangkaian digital.

1.     Pengertian ALU
ALU, singkatan dari Arithmetic And Logic Unit (bahasa Indonesia: unit aritmatika dan logika), adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika dan logika berdasar instruksi yang ditentukan. ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada prosesor tersebut.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruksi 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, instruksi 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 instruksi set yang ada pada mesin, tergantung dimana lingkungan instruksi set itu digunakan.
Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner two’s complement. ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori.



1.     Struktur dan Fungsi ALU
ALU memiliki berbagai komponen elektronika didalamnya, yaitu berupa sekumpulan transistor yang dikenal dengan nama logic gate. Logic gate inilah yang berfungsi untuk melaksanakan operasi aritmatika dan operasi logika. Kumpulan susunan dari logic gate 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. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri.
ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lain dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
1.     Sama dengan (=)
2.     Tidak sama dengan (<>)
3.     Kurang dari (<)
4.     Kurang atau sama dengan (<=)
5.     Lebih besar dari (>)
6.     Lebih besar atau sama dengan (>=)
Tugas utama dari ALU (Arithmetic And Logic Unit) adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi aritmatika yang lainnya. Seperti pengurangan, pengurangan, dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatika ini disebut adder.


1.     REPRESENTASI INTEGER

Semua bilangan dapat direprensentasikan dengan hanya menggunakan bilangan 0 dan 1 Untuk keperluan penyimpanan dan pengolahan komputer, kita tidak perlu menggunakan tanda minus dan titik, hanya bilangan biner yang dapat merepresentasikan bilangan.

Representasi Nilai Tanda
Penggunaan unsigned integer tidak cukup untuk merepresentasikan bilangan integer negatif dan juga bilangan positif integer, karena itu terdapat beberapa konvensi lainnya meliputi perlakuan terhadap bit yang paling berarti (paling kiri) di dalam word sebagai bit tanda.
Apabila bit paling kiri sama dengan nol maka suatu bilangan adalah positif. Sedangkan bit paling kiri sama dengan 1, maka bilangan bernilai negatif
Misalnya :
+18 = 00010010
-18 = 10010010 (sign magnitude/nilai-tanda)
Kekurangan Representasi Nilai- Tanda

Penambahan dan pengurangan memerlukan pertimbangan baik tanda bilangan maupun nilai relatifnya agar dapat berjalan pada operasi yang diperlukan
Terdapat dua representasi bilangan 0 :
+010 = 00000000
-010 = 10000000 (sign-magnitude)
Hal ini tidak sesuai untuk digunakan, karena akan menyulitkan pemeriksaan bilangan 0.

1.     INTEGER ARITMATIKA

Bagian ini akan membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen dua

Negasi
Pada notasi komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan menggunakan aturan berikut :
Anggaplah komplemen Boolean seluruh bit bilangan integer (termasuk bit tanda)
Perlakukan hasilnya sebagai sebuah unsigned binary integer, tambahkan 1.
Misal : 18 = 00010010 (komplemen dua)
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 positifdan negatif yang tidak sama.
Pada kasus komplemen dua, terdapat representasi bilangan n-bit untuk -2n, tapi tidak terdapat untuk 2n.
Aturan Untuk Mendeteksi Overflow
Aturan Overflow :
Bila dua buah bilangan ditambahkan, dan keduanya positif atau keduanya negatif, maka akan terjadi overflow bila dan hanya bila hasilnya memiliki tanda yang berlawanan, seperti pada contoh halaman 18 ((e),(f))
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 :
Pembulatan ke Bilangan Terdekat : Hasil dibulatkan ke bilangan terdekat yang dapat direpresentasi.
Pembulatan Ke Arah : Hasil dibulatkan ke atas ke arah tak terhingga positif.
Pembulatan Ke Arah : Hasil dibulatkan ke atas ke arah tak terhingga negatif.
Pembulatan Ke Arah 0 : Hasil dibulatkan ke arah 0

1.     FLOATING-POINT REPRESENTATION
Menyatakan suatu bilangan yang sangat besar/sangat kecil dengan menggeser titik desimal secara dinamis ke tempat yang sesuai dan menggunakan eksponen 10 untuk menjaga titik desimal itu.
Sehingga range bilangan yang sangat besar dan sangat kecil untuk direpresentasikan hanya dengan beberapa digit saja.
Dinyatakan dengan notasi  a = (m,e) , dimana :
a= m x re
r = radiks
m = mantissa
e = eksponen


1.     FLOATING-POINT ARITHMATIC
Bentuk Bilangan Floating Point
Bilangan Floating Point memiliki bentuk umum : ± m*be , dimana m (di sebut juga dengan mantissa), mewakili bilangan pecahan dan umumnya dikonversi ke bilangan binernya, e mewakili bilangan exponent­nya, sedangkan b mewakili radix (basis) dari exponent.

Macam­macam bentuk bilangan floating point
Untuk mempermudah operasi bilangan floating point dan menambah tingkat presisinya, maka bilangan tersebut dibuat dalam bentuk ternormalisasi (normalized forms). Suatu bilangan floating point telah ternormalisasi jika most significant bit (MSB) dari mantissanya adalah 1.
untuk bilangan floating point bukan no l yang ternormalisasi memiliki bentuk
(­1) S * (1.m) * 2 e­128

Aritmatika Floating Point Penjumlahan / Pengurangan
Hal yang sulit dari penjumlahan dua bilangan exponent  adalah jika bilangan­bilangan tersebut memiliki bentuk exponensial yang berbeda. Untuk memecahkannya, maka sebelum di tambahkan bilangan exponensialnya harus disetarakan terlebih dahulu, atau bilangan dengan nilai exponent lebih kecil disamakan dulu ke bilangan exponent yang sama dengan bilangan lain.
Langkah­ langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating point :
1.     Bandingkan kedua bilangan, dan ubah ke bentuk yang sesuai pada bilangan dengan nilai exponensial lebih kecil
2.     Lakukan operasi penjumlahan / pengurangan
3.     Lakukan normalisasi dengan ’menggeser’ nilai mantissa dan mengatur nilai exponensialnya

Perkalian
Perkalian dari dua bilangan floating point dengan bentuk X = mx* 2a dan Y = mx*2bsetara dengan X * Y = (mx  * my) * 2a+b
Algoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah:
1.     Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua bilangan
2.     Kalikan kedua bilangan mantissa
3.     Normalisasi hasil akhir

Pembagian
Pembagian dari dua bilangan floating point dengan bentuk  X  =  mx  *  2a dan
Y = mx* 2b setara dengan X / Y = (mx / my) * 2a­ b
Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga langkah :
1.     Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua bilangan
2.     Bagi kedua bilangan mantissa
3.     Normalisasi hasil akhir

Floating Point standard IEEE
IEEE  membuat dua bentuk bilangan floating point standard. Bentuk basic dan bentuk extended. Pada tiap bentuk tersebut, IEEE menentukan dua format, yaitu single­precision dan double precision format. Single precision format adalah model 32 bit sedangkan double precision format adalah 64 bit . Pada  single extended format setidaknya menggunakan 44 bit , sedangkan pada double  extended format setidaknya menggunakan 80 bit .



Tidak ada komentar:

Posting Komentar

Sistem Informasi Perbankan Perhitungan Bunga Deposito

Soal. Pada tanggal 15 Januari 2020 Tuan Iwan menyimpan deposito berjangka senilai Rp. 12.000.000 dengan jangka waktu 3 bulan. Bunga dep...