ARCHITECTURE COMPUTER DATA REPRESENTATION Susijanto Tri R. And YMD 1 Data Representation Di dalam komputer, data dan informasi kontrol (instruksi) disajikan dalam bentuk binary yang terdiri dari dua simbol : “0” dan “1”. Dua simbol ini mewakili dua sinyal elektronik : “on” dan “off”. 2 Machine Instructions CPU hanya dapat mengeksekusi instruksi dalam bahasa mesin (machine instruction). Setiap komputer memiliki satu set instruksi mesin khusus, yang digunakan untuk mengenali dan mengeksekusi. Setiap instruksi mesin direpresentasikan sebagai sebuah urutan bit-bit. Setiap bit menginformasikan : Apa yang harus dikerjakan (the operation code) 3 Pada siapa operasi dilakukan (source operands) Dimana hasil disimpan (destination operand) Bagaimana kelanjutan setelah operasi selesai. 4 Penyajian (representation) sebuah instruksi mesin dibagi dalam beberapa field, setiap field berisi satu item instruction specification (opcode, operand, dsb). Fieldfield ini diorganisasikan sesuai dengan format instruksinya. 5 Machine Instruction Type Instruksi mesin mempunyai empat tipe : Data transfer, antara memory dan register CPU Operasi arithmatic dan logic Program control (test and branch) I/O transfer 6 Aspek-aspek penting dari instruksi : Jumlah pengalamatan Jenis-jenis operand Mode pengalamatan Jenis operasi yang tersedia Register access Format instruksi 7 Eksekusi Instruksi Dibutuhkan empat instruksi untuk menyelesaikan Z:=(Y+X)*3: 8 9 10 11 12 13 TIPE DATA Data-data yang digunakan pada komputer digital adalah data dalam bentuk kode-kode biner. Tipe-tipe data yang digunakan pada komputer umumnya dapat diklasifikasikan sebagai berikut : Alphabet (character) berupa huruf, angka, tandatanda baca, untuk data processing. Numerik, digunakan untuk operasi-operasi perhitungan. Simbol-simbol lain yang diperlukan untuk keperluan khusus. 14 ALPHANUMERIK REPRESENTATION Alphanumeric character adalah suatu elemen yang terdiri dari 10 simbol angka, 26 simbol abjad, tanda baca (contoh : ! ? / , .), dan beberapa special character (contoh : $, @, +, =). Untuk merepresentasikan simbol-simbol di atas digunakan kode ASCII (American Standard Code for Information Interchange). 15 Tabel Kode ASCII Alphanumeric Char A B C D E F G H I J K L M N O P Q R Binary Code 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0101 0101 0101 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 Char Binary Code S T U V W X Y Z 0101 0101 0101 0101 0101 0101 0101 0101 0011 0100 0101 0110 0111 1000 1001 1010 a b c d e f g h I 0110 0110 0110 0110 0110 0110 0110 0110 0110 0001 0010 0011 0100 0101 0110 0111 1000 1001 Char j k l m n o p q r s t u v w x y z Binary Code 0110 0110 0110 0110 0110 0110 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 Char Binary Code 0 1 2 3 4 5 6 7 8 9 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 16 NUMBER SYSTEM Radix Juga disebut sebagai ‘base / basis’ sebuah sistem bilangan. Radix menunjukkan jumlah simbol angka yang digunakan pada sistem bilangan. Desimal Sistem ini berbasis 10, terdiri dari angka 0,1,2,3,4,5,6,7,8, dan 9. Contoh : angka 824.5 merepresentasikan nilai 8 x 102 + 4 x 101 + 2 x 100 + 5 x 10-1 17 Binary Sistem binari berbasis 2, simbol angkanya terdiri dari 0 dan 1. Sistem ini sangat cocok dengan sistem komputer digital. Contoh : angka 1011.1 merepresentasikan nilai 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 = 11.5(10) 18 Octal Sistem octal berbasis 8, simbol angkanya terdiri dari 0,1,2,3,4,5,6, dan 7. Sistem ini sangat penting dalan komputer digital. Contoh : angka 5741.4 merepresentasikan nilai 5 x 83 + 7 x 82 + 4 x 81 + 1 x 80 + 4 x 8-1 = 3041.5(10) 19 Hexadecimal Sistem bilangan hexadecimal mempunyai 16 lambang bilangan. Terdiri dari 0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E, dan F. Seperti halnya octal, hexadecimal juga banyak digunakan dalam operasi-operasi pada komputer digital. Contoh : angka 574.4 merepresentasikan nilai 7 x 162 + 4 x 161 + 1 x 160 + 4 x 16-1 = 1396.25(10) 20 Bilangan Octal dan Hexadecimal sering digunakan dalam operasi-operasi komputer karena bilangan ini mudah di konversikan ke bilangan biner Contoh 1 2 7 5 4 3 1010111101100011 A F 6 3 Octal Binary Hexadecimal 21 DECIMAL REPRESENTATION Sistem biner adalah sistem bilangan yang dikenal oleh komputer, sedangkan manusia sudah terbiasa dengan sistem desimal. Untuk menjembatani dua sistem bilangan ini digunakan Binary Coded Decimal (BCD). Untuk merepresentasikan satu digit bilangan desimal dengan BCD digunakan empat digit bilangan biner 22 Tabel Bilangan Binary Coded Decimal Bilangan Desimal Binary Coded Decimal 0 1 2 3 4 5 6 7 8 9 10 20 50 128 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0010 0101 0001 0010 0000 0000 0000 1000 23 INTEGER REPRESENTATION Seperti halnya pada representasi alphanumerik dan bilangan desimal untuk merepresentasi-kan bilangan bulat juga digunakan pada bilangan biner. Jumlah digit bilangan biner yang digunakan tergantung dari jenis bilangan bulat yang di presentasikan. Umumnya terdiri dari 8 hingga 32 bit. Untuk 8 digit biner dapat merepresentasikan bilangan bulat positif 0 hingga 255 24 Sign Integer Bilangan bulat bukan hanya bilangan positif tetapi juga terdapat bilangan negatif. Ada tiga cara untuk merepresentasikan bilangan bulat negatif, yaitu : Signed-magnitude representation Signed-1’s complement representation Signed-2’s complement representation 25 Signed-magnitude Representation Pada signed-magnitude untuk menyatakan bilangan negatif digunakan sign-bit, yang diletakkan pada bit paling depan (MSB). Dan sisanya untuk menyatakan nilai dari bilangan itu (Magnitude) 10000101 Sign-bit Magnitude (MSB) 26 Sign-bit : 0 = bilangan positif 1 = bilangan negatif Contoh : +18 = 00010010 -18 = 10010010 Maka 8 bit angka biner dapat menyatakan bilangan desimal dengan range -127 hingga 127. 01111111 = 127 11111111 = -127 27 Namun ada kerugian dalam sistem ini : Untuk operasi penjumlahan dan pengurangan, diperlukan sign dan magnitude dari kedua bilangan. Ada dua representasi untuk bilangan 0, yaitu : 000000002 = 010 100000002 = 010 Hal ini mempersulit untuk test bilangan 0. 28 Signed-1’s Complement Representation Untuk melakukan operasi 1’s complement pada bilangan biner, maka bilangan 0 diganti dengan 1, dan bilangan 1 diganti dengan 0. Contoh : X = 01010001 1’s complement dari X = 10101110 29 Penggunaan 1’s complement representation dari binary integer adalah sebagai berikut : Untuk bilangan positif caranya sama dengan pada sign and magnitude. Untuk bilangan negatif didapat dengan menggunakan 1’s complement dari bilangan biner positif tersebut. Contoh : 18 = 00010010 -18 = 11101101 30 Signed-2’s Complement Representation Untuk melakukan operasi 2’s complement pada bilangan biner terdiri dari dua tahap Lakukan operasi 1’s complement (hasilnya dianggap sebagai unsign binary integer. Tambahakan hasil operasi di atas dengan 1 Contoh : 18 = 00010010 1’s Compl. 18 = 11101101 1+ -18 (2’ Comp.) = 11101110 31 Representasi bilangan menggunakan 2’s com-plement untuk bilangan biner adalah sbb : Untuk bilangan positif caranya seperti pada sign dan magnitude dan 1’s complement. Untuk bilangan negatif didapat dengan menggunakan 2’s complement dari bilangan biner positif tersebut Representasi dengan menggunakan 2’s complement mempunyai anomali (kelebihan) yang tidak terdapat pada sign-magnitude atau 1’s complement. Lihat tabel berikut ini. 32 Tabel Perbandingan Representasi bilangan biner 4bit Bilangan Biner Sign & Magnitude 1’s C 2’s C 0111 7 7 7 0110 6 6 6 0101 5 5 5 0100 4 4 4 0011 3 3 3 0010 2 2 2 0001 1 1 1 0000 0 0 0 1000 -0 -7 -8 1001 -1 -6 -7 1010 -2 -5 -6 1011 -3 -4 -5 1100 -4 -3 -4 1101 -5 -2 -3 1110 -6 -1 -2 1111 -7 -0 -1 33 Masing-masing metode mampunyai kele-mahan yang tidak dapat dihindari yaitu : Untuk sign-magnitude dan 1’s complement jumlah bit integer positif dan negatif sama, tetapi ada dua representasi untuk bilangan 0. 2’s complement hanya ada satu representasi bilangan 0, tetapi jumlah bilangan negatif lebih banyak (1 nilai) daripada bilangan positif. 34