REPRESENTASI INFORMASI
POKOK BAHASAN
Representasi informasi
Bit, byte, dan word
Representasi data numerik dan basis bilangan
Representasi komplemen dua dan bertanda
Sistem fixed point dan floating point
Representasi data bukan numerik (kode
karakter)
REPRESENTASI INFORMASI (1)
Converter
Internal Representation
External Representation
Representasi Eksternal adalah suatu cara untuk merepresentasikan
dan memanipulasi informasi oleh programmer dengan suatu bahasa
pemrograman atau notasi bahasa perintah lainnya ̶ > Agar nyaman bagi
programmer (user).
Representasi Internal adalah suatu cara untuk menyimpan dan
memanipulasi informasi secara aktual di dalam sistem komputer ̶ > Agar
mudah dalam membangun perangkat keras.
Informasi ≈ program & data ≈ deretan bit
akses/manipulasi terhadap informasi ≈ akses/operasi (arithmetic/logic)
terhadap deretan bit
REPRESENTASI INFORMASI (2)
Bilangan berpresisi terbatas berpeluang memunculkan
‘kesalahan’ (dari segi matematika klasik), tetapi bisa
menjadi ‘kebenaran’ sebagai konsekuensi logis dari
keterbatasan mesin tersebut
Kesalahan yang dapat terjadi:
overflow error
underflow error
unrepresentable
BIT DAN BYTE
Apa bedanya antara bit dan byte ? al y
x c im ar
n
1 byte = 8 bit (binary digit) He De Bi
0 0 0000
Range Binary: 000000002 - 111111112 1 1 0001
2 2 0010
Range Decimal: 010 - 25510 3 3 0011
4 4 0100
5 5 0101
Range Hexadecimal: 0016 - FF16 6 6 0110
7 7 0111
representasi bilangan basis 16
8 8 1000
9
Menggunakan karakter ‘0’ - ‘9’ dan ‘A’ - ‘F’ 9 1001
A 10 1010
Range Octal: ... - ... B 11 1011
C 12 1100
000 - 377
8 8 D 13 1101
E 14 1110
1 nibble = … bit = … byte F 15 1111
WORD SIZE (1)
Word merupakan sejumlah bit berukuran tetap yang
ditangani secara bersama-sama oleh komputer
Sebuah word dapat merupakan:
ukuran register
ukuran suatu tipe data
jumlah data dalam sekali transfer
lebar alamat suatu memori
Kebanyakan mesin menggunakan 32 bit (4 byte)
Sistem high-end menggunakan 64 bit (8 byte)
Satuan word adalah byte
Contoh:
Intel: 1 word = 16 bit (8086)
Tetap kompatibel dengan, x86, IA-32, IA-64
WORD SIZE (2)
d = desimal; b = bit
REPRESENTASI DATA
Contoh ukuran Objek pada C (dalam byte)
Tipe Data C Compaq Alpha Typical 32-bit Intel
IA32
int 4 4 4
long int 8 4 4
char 1 1 1
short 2 2 2
float 4 4 4
double 8 8 8
long double 8 8 10/12
char * 8 4 4
BILANGAN DESIMAL (1)
Representasi bilangan basis 10
Itu kenapa jari tangan dikenal sebagai “digits”
Representation bilangan natural untuk transaksi financial
Kenapa komputer sekarang menggunakan sistem biner
dan bukan desimal ?
Implementasi secara elektronik
Sukar disimpan
ENIAC (komp. pertama kali) menggunakan 10 vacuum tubes/digit
Sukar dikirimkan
Memerlukan presisi yg tinggi untuk meng-encode sinyal dengan 10
level pada single wire
Kehandalan komponen elektronika turun sejalan dengan waktu
penggunaannya (drift)
Perubahan sebesar 10 % saja sudah mengubah nilai
Sulit untuk diimplementasikan pada fungsi logika digital
Addition, multiplication, etc.
BILANGAN DESIMAL (2)
Desimal Biner
BILANGAN BINER
Representasi bilangan basis 2
Representasi 1521310 as 111011011011012
Representasi 1,20 as 1,0011001100110011[0011]…
10 2
Representasi 1,5213 X 104 as 1,1101101101101 X 213
2
Implementasi Elektronik
Mudah untuk disimpan sebagai elemen yang bistable (hanya
ada 2 nilai yang berbeda jauh)
Lebih handal pada wire yang noise dan inaccurate
Mudah diimplementasikan pada fungsi logika digital
0 1 0
3.3V
2.8V
0.5V
0.0V
JENIS-JENIS BILANGAN BINER
Bilangan bulat biner tak bertanda (unsigned
integer)
Bilangan bulat biner bertanda (signed
integer)
Sign/magnitude
Komplemen 2 (radix complement)
Komplemen 1 (diminished radix complement)
Binary Coded Decimal (BCD)
Bilangan pecahan biner (floating point)
Excess 2m-1
BILANGAN BULAT BINER TAK BERTANDA
(UNSIGNED INTEGER)
dndn-1dn-2...d3d2d1d0 = dnrn + dn-1rn-1 + dn-2rn-2 .. d3r3 +
d2r2 + d1r1 + d0r0
d = nilai bilangan;
r = radix (basis bilangan) = jumlah simbol maksimum
n = posisi bilangan, LSB = posisi ke-0
Cakupan bilangan yang bisa disajikan: 0 I 2m-1
Misal bilangan 16 bit: 0 I 216-1 = 0 I 32768
Konversi dari NR ke Nr : R = basis desimal dan r = basis bilangan lainnya
NR = dnrn + dn-1rn-1 + dn-2rn-2 .. d3r3 + d2r2 + d1r1 + d0r0
Biner ke desimal: 1010112 = 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 1x20
= 32 + 0 + 8 + 0 + 2 +1 = 4310
KONVERSI BILANGAN (1)
Desimal ke biner 4310 = ...2
43 : 2 = 21 ; sisa 1 d0 (LSB)
21 : 2 = 10 ; sisa 1 d1
10 : 2 = 5 ; sisa 0 d2
5 : 2 = 2 ; sisa 1 d3
2 : 2 = 1 ; sisa 0 d4
1 : 2 = 0 ; sisa 1 d5 Jadi 4310 = 1010112
Latihan:
a. 101010102 = ...10 f. ABCD16 = ...8
b. 500010 = ...2 g. 10010110101001012 = ...10
c. 500010 = ...8 h. 10010110101001012 = ...8
d. 500010 = ...16 i. 10010110101001012 = ...16
e. ABCD16 = ...10 (solusi)
KONVERSI BILANGAN (2)
Apa kesimpulan yang dapat diperoleh ?
• Konversi bilangan biner ke bilangan oktal atau sebaliknya
dapat dilakukan dengan lebih mudah dan lebih cepat
dibanding konversi bilangan tersebut ke bilangan desimal
• Konversi bilangan biner ke bilangan heksadesimal atau
sebaliknya dapat dilakukan dengan lebih mudah dan lebih
cepat dibanding konversi bilangan tersebut ke bilangan
desimal
• Konversi representasi data eksternal ke data internal atau
sebaliknya memerlukan proses lebih panjang dan lebih
rumit
• ...
Kapan representasi data eksternal dalam bentuk
heksadesimal dilakukan ?
SIGNED INTEGER : SIGN/MAGNITUDE (1)
Dapat merepresentasikan bilangan negatif
Simple: Bit terkiri (Most Significant Bit - MSB) dianggap
sebagai bit tanda (sign bit)
Bit 0 bilangan positif
bit 1 bilangan negatif
Bit selain MSB sebagai nilai magnitude absolut bilangan
Cakupan nilai (I) yang dapat direpresentasikan:
̶ (2m-1 ̶ 1) I +(2m-1 ̶ 1)
m = banyaknya bit
Misal:
Untuk bilangan 16 bit: ̶ (216-1 ̶ 1) I +(216-1 ̶ 1)
= ̶ 32767 I +32767
SIGNED INTEGER : SIGN/MAGNITUDE (2)
Contoh m = 3 :
Masalah: Apakah 000 = +0 sama dengan 100 = -0 ???
Bagi manusia: +0 dan ̶ 0 adalah sama
Bagi komputer: +0 dan ̶ 0 adalah beda, karena komputer
membandingkan 2 buah bilangan secara bit per bit !!
SIGNED INTEGER: KOMPLEMEN 2 (RADIX
COMPLEMENT) (1)
Biner dalam bentuk 2’s complement
Disebut sebagai aritmatika modular (modulo)
A = B (mod M)
Bilangan berapapun ditambah dengan M hasilnya tetap !
Bilangan biner dengan jumlah bit = m,
mempunyai modulo M = 2m
M = 1000...0, bilangan terbesar: 111...1 = 2 m – 1 = M – 1
m nol m satu
0 M-1
Bilangan Positif Bilangan Negatif
kecil besar kecil besar
Bilangan positif, hitung ke atas mulai dari nol: (+X = X)
Bilangan negatif, hitung ke bawah dari modulus M: ( ̶ X = M ̶ X)
SIGNED INTEGER: KOMPLEMEN 2 (RADIX
COMPLEMENT) (2)
Contoh 1: m = 4, maka M = 2m = 24 = 16
+610 = 01102, –710 = …2
Cara I: ̶ X = M ̶ X ̶ 710 = 16 – 7 = 9 = 10012
Contoh 2: ̶ 1010 = ...2
̶ 1010 = 16 – 10 = +6 = 01102
Jadi +610 = ̶ 1010 ??? (ambigu !)
Solusinya dibuat aturan sbb:
IF MSB = 0 THEN bilangan adalah POSITIF
(magnitude = unsigned integer)
ELSE bilangan adalah NEGATIF
(magnitude = M – X)
Jadi 01102 hanya untuk bilangan +610 saja, –1010 = ??
SIGNED INTEGER: KOMPLEMEN 2 (RADIX
COMPLEMENT) (3)
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (4)
M-1 = 2m-1 = 111...1 (satu semua)
Bilangan biner yang digunakan untuk mengurangi 1 akan
menghasilkan biner kebalikannya (1–0 = 1; 1–1 = 0)
Pengurangan dengan M-1 = inversi (komplemen)
Modifikasi rumus:
–X = M–X menjadi:
komplemen
Contoh: Untuk m = 5,maka X ̶ 5M
10 2 X 1
= 1...
Cara II: (lebih sederhana)
+510 = 00101 nilai X dalam biner
11010 dikomplemenkan: bit 1 0, bit 0 1
1+
11011 setelah ditambah 1
110112 ̶ 510 dalam komplemen 2
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (6)
Cakupan nilai:
2 m 1 I 2 m 1 1
Contoh untuk bilangan 16 bit: ̶ (216-1) I +(216-1 ̶ 1)
= ̶ 32768 I +32767 (tipe sign int)
Aritmatika Penjumlahan:
Contoh aritmatika m= 5 bit
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (7)
Berapa komplemen 2 dari 00000 ?
Komplemen 2 banyak
diterapkan di komputer !!
Kapan Overflow terjadi ???:
bilangan positif + bilangan positif = bilangan negatif
bilangan negatif + bilangan negatif = bilangan positif
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (8)
Organisasi fungsional untuk Penjumlahan:
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (10)
• Bagaimana dengan Pengurangan ?
• Dapat dengan unit pengurangan + register
borrow + register overflow
• Perancang komputer:
• Lebih suka manfaatkan unit penjumlahan yang
sudah ada + unit komplementor
• Biaya lebih murah
• Perawatan lebih mudah
• Modifikasi:
• D = Y – X menjadi D = –X + Y
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (11)
Contoh: m = 4:
(a) (+3) – (+2)
0011 (+3) 0011 (+3)
+ 1110 (–2)
– 0010 (+2)
1|0001 (+1)
ke carry register
(b) (+3) – (+5)
0011 (+3) 0011 (+3)
– 0101 (+5) + 1011 (–5)
1110 (–2)
(c) (-2) – (-5)
1110 (–2)
1110 (–2) + 0101 (+5)
– 1011 (–5) 1|0011 (+3)
ke carry register
SIGNED INTEGER: KOMPLEMEN 2
(RADIX COMPLEMENT) (12)
Organisasi fungsional untuk Pengurangan:
unit baru
SIGNED INTEGER: KOMPLEMEN 1
(DIMINISHED RADIX COMPLEMENT) (1)
Diminished = ...
Merupakan varian dari komplemen 2
Komplemen dilakukan dengan cara:
Ganti semua bit 1 dengan 0 dan semua bit 0 dengan 1
Tanpa penambahan dengan +1
Carry tidak dibuang
X X
X ( M 1) X
Cakupan nilai: 2 m 1 1 I 2 m 1 1
Misal:
Untuk bilangan 16 bit: ̶ (216-1 ̶ 1) I +(216-1 ̶ 1)
= ̶ 32767 I +32767 (sama dengan sign/magnitude)
SIGNED INTEGER: KOMPLEMEN 1
(DIMINISHED RADIX COMPLEMENT) (2)
SIGNED INTEGER: KOMPLEMEN 1
(DIMINISHED RADIX COMPLEMENT) (3)
Muncul kembali ambiguitas +0 dan –0
Komplemen 1 jarang digunakan
BINARY CODED DECIMAL (BCD) (1)
Mengapa BCD digunakan ?
Karenakonversi bilangan desimal ke komplemen 2
dapat mendominasi waktu eksekusi
Konversi : tiap digit desimal empat bit
biner
Contoh: 010 = 00002; 110 = 00012; ...; 910 = 10012
Tanda ‘+’ dan ‘–’ dengan kombinasi yang belum
dipakai, contoh : 1010 = ‘+’ dan 1011 = ‘–’
Aplikasi apa yang menggunakan BCD ?
Aplikasi
yang banyak melibatkan data input maupun
output namun sangat sedikit pemrosesan numerik
(contoh : payroll dan inventory)
BINARY CODED DECIMAL (BCD) (2)
Contoh
1.23410 = 0001001000110100
–56710 = 1011010101100111
1 2 3 4
‘–’ 5 6 7
Binary Coded Decimal (BCD) (3)
Apa kekurangan BCD ?
Operasi aritmatika lebih lama (lookup table)
dibanding sign/magnitude maupun 2’s dan 1’s
complement
Penjumlahan bilangan dalam BCD dilakukan per
digit desimal (4-bit) dan menghasilkan carry
desimal (bukan penjumlahan bit per bit)
Contoh Aritmatika:
(0001) (0001) carry
0110 0011 (+63)
+0100 1001 (+49)
0001 0001 0010(+112)
PUSTAKA
[HTT02] [Link]
[SCH85] Schneider, Michael G. 1985. “The Principle of
Computer Organization”. 1st edition. John Wiley
& Sons. Canada.
[TAN99] Tanenbaum, Andrew S. 1999. “Structured
Computer Organization”. 4th edition. Prentice
Hall.