Arsitektur Komputer Genap 2004/2005 REPRESENTASI DATA
Tipe Data Informasi biner pada komputer digital disimpan pada memori atau register Tipe data: Bilangan --> digunakan pada operasi aritmetik huruf/alfabet --> digunakan pada pengolahan data simbol lain -->digunakan untuk tujuan tertentu
Tipe Data Semua data dikodekan dalam bentuk pengkodean biner --> karena register dibuat dari flip-flop dan flip-flop merupakan suatu piranti yang hanya menyimpan 0 dan 1
Sistem Bilangan Sistem bilangan dengan basis atau radix r adalah suatu sistem bilangan yang menggunakan simbol r digit Untuk menentukan bilangan representasi -> dilakukan dengan penjumlahan hasilkali tiap-tiap digit dengan r^n
Sistem Bilangan - Desimal Sistem bilangan desimal yang digunakan sehari-hari --> menggunakan radix 10 Bilangan radix 10 menggunakan simbol 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Contoh: 724,5 7x102 + 2x101 + 4x100 + 5x10-1 artinya: 7 ratusan, 2 puluhan, 4 satuan dan 5 sepersepuluhan
Sistem Bilangan - Biner Sistem bilangan biner menggunakan radix 2 Menggunakan simbol 0 dan 1 101101 menyatakan 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 45 sehingga (101101)2 = (45)10
Sistem Bilangan - Oktal dan Heksadesimal Selain sistem bilangan biner dan desimal, sistem bilangan oktal (radix 8) dan hexadesimal (radix 16) sering digunakan pada sistem komputer digital Sistem bilangan oktal menggunakan simbol: 0, 1, 2, 3, 4, 5, 6, 7 Sistem bilangan heksadesimal menggunakan simbol 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Sistem Bilangan - Oktal Konversi ke sistem bilangan desimal dilakukan dengan menjumlahkan bobot-bobot digit Contoh (736,4)8 = 7x82 + 3x81 + 6x80 + 4x8-1 = 7x64 + 3x8 + 6x1 + 4/8 = (478,5)10
Sistem Bilangan - Heksadesimal Contoh (F3)16 = Fx16 +3 = 15x16 +3 = (243)10 Konversi dari desimal ke sistem radix r --> harus dilakukan pemecahan integer dan pecahannya Konversi integer dilakukan dengan pembagian berulang Konversi pecahan dilakukan dengan perkalian berulang
Konversi Bilangan Contoh konversi (41,6875)10 ke biner (41,6875)10 = (101001,1011)2
Konversi Bilangan Konversi antar sistem bilangan biner, oktal dan heksadesimal penting pada komputer digital Satu digit oktal berkorespondensi dengan 3 bit biner, dan 1 digit heksadesimal berkorespondensi dengan 4 bit biner
Konversi Bilangan Konversi biner ke oktal mengelompokkan tiap 3 bit biner mengkonversikan tiap kelompok ke oktal Konversi biner ke heksadesimal mengelompokkan tiap 4 bit biner mengkonversikan tiap kelompok ke heksadesimal
Konversi Bilangan Contoh
Konversi Bilangan Konversi oktal ke biner konversikan tiap digit oktal menjadi 3 bit biner Konversi heksadesimal ke biner konversikan tiap digit heksadesimal menjadi 4 bit biner
Konversi Bilangan Tabel Konversi - Binary Coded Octal
Konversi Bilangan Tabel Konversi - Binary Coded Hexadecimal
Konversi Bilangan Sistem bilangan biner digunakan dalam komputer, manusia lebih akrab dengan sistem desimal Penyelesaian: konversi ke biner, komputer mengolah dalam biner, hasilnya dikonversikan ke desimal sehingga mudah dipahami user
Konversi Bilangan Perbedaan antara sistem biner dengan BCD 99 --> 1100011, tapi pada BCD 1001 1001 Bilangan desimal dinyatakan dalam bentuk 0,1,2, …, 9, sedangkan BCD direpresentasikan dalam 0001, 0010, 0011, …, 1001
Konversi Bilangan Tabel Konversi - BCD
Representasi Alfanumerik Banyak aplikasi komputer tidak hanya memerlukan data bilangan saja, namun juga huruf alfabet dan karakter khusus Karakter alfanumerik adalah set elemen yang termasuk 10 digit desimal, 26 huruf alfabet, dan karakter khusus seperti $, +, dan =. Satu set terdiri dari 32 dan 64 elemen atau 64 dan 128 elemen --> diperlukan pengkodean 6 atau 7 bit
Representasi Alfanumerik - ASCII Standard yang digunakan ASCII (American Standard Code for Information Interchange), yang menggunakan 7 bit untuk mengkodekan 128 karakter Desimal digit ASCII dapat dikonversikan ke BCD dengan membuang 3 bit tertinggi 011
Tabel ASCII
Komplemen Digunakan untuk menyederhanakan operasi pengurangan atau manipulasi logika Tedapat dua tipe komplemen sistem basis r: r’s complement (r-1)’s complement Pada bilangan biner (r=2) dikenal 1’s complement dan 2’s complement Pada bilangan desimal (r=10) dikenal 9’s complement dan 10’s complement
(r-1)’s Complement Diberikan bilangan N dengan basis r yang mempunyai n digit, maka (r-1)’s complement dari N didefinisikan sebagai: (rn-1)-N Untuk sistem desimal r=10 dan r-1 = 9, maka 9’s complement dari N adalah (10n-1)-N
(r-1)’s Complement Untuk sistem biner r=2 dan r-1=1, sehingga 1’s complement dari N adalah (2n-1)-N
r’s Complement r’s complement dari bilangan N dengan n-digit dan basis r didefinisikan sebagai rn-N Dibandingkan dengan (r-1)’s complement, r’s complement diperoleh dengan menambahkan 1 pada (r-1)’s complement rn-N = (rn-1)-N+1
Pengurangan Bilangan Takbertanda Metode langsung pengurangan digunakan metode borrow --> metode ini sudah dilakukan dengan “paper and pencil” Pada implementasi hardware, metode tersebut kurang efisien dibandingkan dengan metode komplemen
Pengurangan Bilangan Takbertanda Pengurangan dua bilangan takbertanda M-N dalam basis r dilakukan sbb: Jumlahkan minuend M ke r’s complement dari substrahend N. Menghasilkan M + (rn-N) = M - N + rn Jika MN, penjumlahan akan menghasilkan carry rn yang diabaikan, sehingga menghasilkan M-N Jika M<N, penjumlahan tidak menghasilkan carry dan menghasilkan rn-(N-M), yang merupakan r’s complement dari (N-M)
Pengurangan Bilangan Takbertanda - Contoh Tidak terdapat carry
Representasi Fixed Point Integer positif termasuk nol dapat dinyatakan dengan bilangan takbertanda Untuk bilangan negatif --> diperlukan notasi/representasi untuk bilangan negatif Dalam aritmetik, tanda dinyatakan dalam + atau - Karena keterbatasan hardware, komputer harus menyatakan segalanya dengan kode-kode 0 dan 1
Representasi Fixed Point Bit tanda diletakkan pada bit yang “paling kiri” Kesepakatan nilai sign bit 0 --> bilangan positif 1 --> bilangan negatif
Representasi Integer Terdapat 3 cara Signed-magnitude representation Signed-1’s complement Signed-2’s complement
Signed magnitude Terdiri atas 2 field Bit MSB --> tanda Bit sisanya --> magnitude
1’s dan 2’s complement Bilangan negatif dinyatakan dengan operasi 1’s complement atau 2’s complement bilangan positifnya
Contoh Representasi bilangan bertanda 14 dalam register 8 bit Untuk +14 = 00001110 Untuk -14 Signed magnitude 1 0001110 1’s complement 1 1110001 2’s complement 1 1110010
Perbandingan Signed magnitude --> tidak digunakan dalam sistem komputer 1’s complement --> terdapat kesulitan karena 0 mempunyai 2 pernyataan (+0 dan -0). Hanya digunakan pada komputer lama. Berguna hanya pada operasi logika 2’s complement --> digunakan dalam sistem komputer
Penjumlahan Aritmetik Mengikuti aturan penjumlahan aritmetik Jika tanda kedua operand sama, jumlahkan kedua operand, dan tanda hasil penjumlahan gunakan tanda salah satu operand Jika tanda berbeda, kurangkan operand yang magnitudenya lebih kecil dari operand yang magnitudenya lebih besar, tanda hasil penjumlahan gunakan tanda operand yang magnitudenya lebih besar
Penjumlahan Aritmetik Pada sistem 2’s complement --> penjumlahan tidak dilakukan dengan pengurangan atau pembandingan Penjumlahan dilakukan sbb: jumlahkan kedua bilangan langsung, termasuk sign bit untuk hasil jumlahan --> abaikan carry
Penjumlahan Aritmatik - Contoh Operasi yang dilakukan selalu penjumlahan, termasuk sign bit
Pengurangan Aritmetik Pengurangan dua bilangan 2’s complement dilakukan sbb: Operasikan 2’s complement pada substrahend dan kemudian jumlahkan hasilnya ke minuend termasuk sign bit Prosedur ini didasarkan pada: (A)-(+B)=(A)+(-B) (A)-(-B)=(A)+(+B)
Pengurangan Aritmetik - Contoh Pengubahan dari bilangan positif ke negatif --> dengan 2’s complement Contoh:
Overflow Jika penjumlahan 2 bilangan n digit menghasilkan n+1 digit maka disebut dengan overflow Penjumlahan dengan ‘paper and pencil’--> tidak ada masalah dengan overflow Penjumlahan dengan komputer digital --> overflow menjadi masalah karena ukuran register yang terbatas Komputer perlu mendeteksi adanya overflow
Overflow Diketahui pada saat terjadi perubahan tanda (+) + (+) = (-) atau (-) + (-) = (+) Overflow tidak akan terjadi pada saat penjumlahan bilangan yang berbeda tanda
Overflow - Contoh
Overflow - Deteksi Dengan mengamati carry out dengan carry yang terjadi pada posisi sign bit Jika sama maka overflow tidak terjadi Jika beda maka terjadi overflow Secara digital --> gunakan gerbang XOR Overflow --> keluaran gerbang = 1 Tidak overflow --> keluaran gerbang = 0
Representasi Fixed Point - Desimal Representasi desimal pada register dinyatakan menggunakan kode biner Keuntungan penggunaan desimal --> input dan output komputer berupa data desimal Representasi bilangan desimal bertanda dalam BCD mirip dengan representasi bilangan bertanda dalam biner
Representasi Fixed Point - Desimal Sign bit dinyatakan dalam 4 bit Tanda (+) --> 0000 Tanda (-) --> 1001 10’s complement sistem BCD ubah menjadi 9’s complement hasilnya ditambah dengan 1
Representasi Fixed Point - Desimal - Contoh Penjumlahan (+375) + (-240) = +135 pada 10’s complement Tanda 9 menunjukkan bilangan negatif
Representasi Floating-Point Mempunyai dua bagian tanda dan bilangan fixed-point --> mantissa posisi titik desimal/biner --> eksponen Contoh: +6132,789 dinyatakan sebagai
Representasi Floating-Point Dinyatakan sebagai m x re hanya mantissa m dan eksponen e yang dinyatakan dalam register Untuk bilangan biner +1001,11 =
Representasi Floating-Point Bit fraction yang paling kiri menandakan tanda + Bilangan floating point ekuivalen dengan m x 2e = +(,1001110)2 x 2+4 Bilangan floating point dikatakan ternormalisasi jika most significant bit mantissa tidak bernilai nol
Kode Biner Lain - Gray Code Kode Gray merupakan kode yang tidak berbobot dan bukan suatu kode aritmetika tidak ada bobot tertentu yang dikandung oleh bit-bit dalam posisinya masing-masing Hanya terdapat satu perubahan bit saja pada saat terjadi perubahan dari dua kode Gray yang berurutan Digunakan untuk aplikasi posisi shaft (shaft position)
Gray Code - Tabel
Kode Desimal Lain Kode biner untuk digit desimal memerlukan 4 bit Dapat menggunakan pengkodean yang berbeda-beda Contoh: Kode BCD 8421, 2421, Excess-3, Excess-3 Gray
Kode Desimal Lain - Tabel
Kode Desimal Lain - Pembobotan Contoh: Kode 8421 dan Kode 2421 Setiap bit memiliki bobot tertentu Contoh: Kode 2421 dari (1101)2 memiliki arti: 2x1 + 4x1 + 2x0 +1x1 = 7 Kode BCD memiliki pembobotan 8421 sehingga sering disebut dengan kode 8421
Kode Desimal Lain – Excess Digunakan pada komputer lama, yang merupakan kode tak berbobot. Diperoleh dari kode BCD ekuivalen ditambah dengan ‘3’ atau (0011)2 Dari tabel, kode Gray tidak cocok digunakan sebagai kode desimal (jika kita lihat 10 data pertama) transisi ‘9’ (1101) ke ‘0’ (0000) harus mengubah 3 bit Kemudian hanya digunakan mulai data baris ke 3 yaitu 0010 sampai ke 12 (1010) transisi ‘9’ ke ‘0’ hanya perlu transisi 1 bit Karena kode digeser sebanyak 3 maka disebut dengan excess-3 Gray
Diskusi Any Questions??