Dokumen tersebut membahas tentang representasi informasi dalam komputer, mulai dari definisi bit dan byte, jenis-jenis bilangan biner seperti bilangan bulat tak bertanda dan bertanda dengan menggunakan komplemen dua, serta konversi antara sistem bilangan biner, oktal, desimal, dan heksadesimal.
1. PI1023 – ORGANISASI KOMPUTERPI1023 – ORGANISASI KOMPUTER
REPRESENTASI
INFORMASI
2. • RepresentasiRepresentasi InformasiInformasi
• Bit, byteBit, byte, dan, dan wordword
• Representasi data nRepresentasi data numeriumerikk dan basisdan basis
bilanganbilangan
• Representasi komplemen dua danRepresentasi komplemen dua dan
bertandabertanda
• SistemSistem fixedfixed point danpoint dan floating pointfloating point
• RepresentaRepresentasi data bukan numeriksi data bukan numerik ((kodekode
karakterkarakter))
Pokok BahasanPokok Bahasan
3. Representasi InformasiRepresentasi Informasi (1)(1)
Converte
r
External Representation
Internal Representation
Representasi EksternalRepresentasi 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 InternalRepresentasi 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
4. Representasi InformasiRepresentasi Informasi (2)(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
5. BBit dan Byteit dan Byte
• Apa bedanya antara bit dan byte ?
• 1 byte = 8 bit (binary digit)
– Range Binary: 000000002 - 111111112
– Range Decimal: 010 - 25510
– Range Hexadecimal: 0016 - FF16
representasi bilangan basis 16
Menggunakan karakter ‘0’ - ‘9’ dan ‘A’ - ‘F’
– Range Octal: ... - ...
0008 - 3778
• 1 nibble = … bit = … byte
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
H
ex
Decim
al
Binary
6. WordWord SizeSize (1)(1)
• WordWord merupakan sejumlah bit berukuran tetap yangmerupakan sejumlah bit berukuran tetap yang
ditangani secara bersama-sama oleh komputerditangani secara bersama-sama oleh komputer
• Sebuah word dapat merupakan:Sebuah word dapat merupakan:
– ukuran registerukuran register
– ukuran suatu tipe dataukuran suatu tipe data
– jumlah data dalam sekali transferjumlah data dalam sekali transfer
– lebar alamat suatu memorilebar alamat suatu memori
• Kebanyakan mesin menggunakan 32 bit (4 byte)Kebanyakan mesin menggunakan 32 bit (4 byte)
• Sistem high-end menggunakan 64 bit (8 byte)Sistem high-end menggunakan 64 bit (8 byte)
• Satuan word adalahSatuan word adalah bytebyte
• Contoh:Contoh:
– Intel: 1 word = 16 bit (8086)Intel: 1 word = 16 bit (8086)
– Tetap kompatibel dengan, x86, IA-32, IA-64Tetap kompatibel dengan, x86, IA-32, IA-64
8. Representasi DataRepresentasi Data
• Contoh ukuran Objek pada C (dContoh ukuran Objek pada C (daallaam byte)m byte)
Tipe Data CTipe Data C Compaq AlphaCompaq Alpha Typical 32-bitTypical 32-bit Intel IA32Intel IA32
intint 44 44 44
long intlong int 88 44 44
charchar 11 11 11
shortshort 22 22 22
floatfloat 44 44 44
doubledouble 88 88 88
long doublelong double 88 88 10/1210/12
char *char * 88 44 44
9. Bilangan DesimalBilangan Desimal (1)(1)
• Representasi bilangan basis 10Representasi bilangan basis 10
– Itu kenapa jari tangan dikenal sebagai “digits”Itu kenapa jari tangan dikenal sebagai “digits”
– Representation bilangan natural untuk transaksi financialRepresentation bilangan natural untuk transaksi financial
• Kenapa komputer sekarang menggunakan sistem binerKenapa komputer sekarang menggunakan sistem biner
dan bukan desimal ?dan bukan desimal ?
• Implementasi secara elektronikImplementasi secara elektronik
– Sukar disimpanSukar disimpan
ENIAC (komp. pertama kali) menggunakan 10 vacuum tubes/digitENIAC (komp. pertama kali) menggunakan 10 vacuum tubes/digit
– Sukar dikirimkanSukar dikirimkan
MemerlukanMemerlukan presisi yg tinggipresisi yg tinggi untuk meng-encode sinyal dengan 10untuk meng-encode sinyal dengan 10
level pada single wirelevel pada single wire
– Kehandalan komponen elektronika turun sejalan dengan waktuKehandalan komponen elektronika turun sejalan dengan waktu
penggunaannya (drift)penggunaannya (drift)
Perubahan sebesar 10 % saja sudah mengubah nilaiPerubahan sebesar 10 % saja sudah mengubah nilai
– Sulit untuk diimplementasikan pada fungsi logika digitalSulit untuk diimplementasikan pada fungsi logika digital
Addition, multiplication, etc.Addition, multiplication, etc.
11. Bilangan BinerBilangan Biner
• Representasi bilangan basis 2Representasi bilangan basis 2
– Representasi 15213Representasi 152131010 as 11101101101101as 1110110110110122
– Representasi 1,20Representasi 1,201010 as 1,0011001100110011[0011]…as 1,0011001100110011[0011]…22
– Representasi 1,5213 X 10Representasi 1,5213 X 1044
as 1,1101101101101as 1,110110110110122 X 2X 21313
• Implementasi ElektronikImplementasi Elektronik
– Mudah untuk disimpan sebagai elemen yang bistableMudah untuk disimpan sebagai elemen yang bistable
(hanya ada 2 nilai yang berbeda jauh)(hanya ada 2 nilai yang berbeda jauh)
– Lebih handal padaLebih handal pada wirewire yang noise dan inaccurateyang noise dan inaccurate
– Mudah diimplementasikan pada fungsi logika digitalMudah diimplementasikan pada fungsi logika digital
0.0V
0.5V
2.8V
3.3V
0 1 0
13. Bilangan bulatBilangan bulat Biner tak bertandaBiner tak bertanda
(Unsigned Integer)(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
14. Konversi BilanganKonversi Bilangan (1)(1)
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)
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
15. Konversi BilanganKonversi Bilangan (2)(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
• ...
16. Signed Integer : Sign/magnitudeSigned Integer : Sign/magnitude (1)(1)
• Dapat merepresentasikan bilanganDapat merepresentasikan bilangan negatifnegatif
• Simple:Simple: Bit terkiri (Bit terkiri (MoMostst SSignificantignificant BBitit - MSB- MSB) dianggap) dianggap
sebagai bit tanda (sebagai bit tanda (sign bitsign bit))
– Bit 0Bit 0 bilangan positifbilangan positif
– bit 1bit 1 bilangan negatifbilangan negatif
• Bit selain MSB sebagaiBit selain MSB sebagai nilainilai magnitudemagnitude absolut bilanganabsolut bilangan
• Cakupan nilai (I) yang dapat direpresentasikan:Cakupan nilai (I) yang dapat direpresentasikan:
̶ (2̶ (2m-1m-1
̶ 1)̶ 1) ≤≤ II ≤≤ +(2+(2m-1m-1
̶ 1)̶ 1)
m = banyaknya bitm = banyaknya bit
• Misal:Misal:
Untuk bilangan 16 bit: ̶ (2Untuk bilangan 16 bit: ̶ (216-116-1
̶ 1)̶ 1) ≤≤ II ≤≤ +(2+(216-116-1
̶ 1)̶ 1)
= ̶ 32767= ̶ 32767 ≤≤ II ≤≤ +32767+32767
17. Signed Integer : Sign/magnitudeSigned Integer : Sign/magnitude (2)(2)
• Contoh m = 3 :Contoh m = 3 :
• MasalahMasalah: Apakah: Apakah 000 = +0000 = +0 sama dengansama dengan 100 = -0 ???100 = -0 ???
– Bagi manusia: +0 dan ̶ 0 adalah samaBagi manusia: +0 dan ̶ 0 adalah sama
– Bagi komputer: +0 dan ̶ 0 adalahBagi komputer: +0 dan ̶ 0 adalah bedabeda, karena komputer, karena komputer
membandingkan 2 buah bilangan secara bit per bit !!membandingkan 2 buah bilangan secara bit per bit !!
18. Signed Integer: Komplemen 2Signed Integer: Komplemen 2 (Radix(Radix
ComplementComplement)) (1)(1)
• Biner dalam bentuk 2’s complement
• Disebut sebagai aritmatika modular (modulo)
A = B (mod M)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 = 2m
– 1 = M – 1
• Bilangan positif, hitung ke atas mulai dari nol: (+X = X)
• Bilangan negatif, hitung ke bawah dari modulus M: ( ̶ X = M ̶ X)
0 M-1
Bilangan Positif Bilangan Negatif
kecil besar kecil besar
m nol m satu
19. Signed Integer: Komplemen 2Signed Integer: Komplemen 2 (Radix(Radix
ComplementComplement)) (2)(2)
• Contoh 1: m = 4, maka M = 2m
= 24
= 16
+610 = 0110011022, –710 = …2
Cara I: ̶ X = M ̶ X ̶ 710 = 16 – 7 = 9 = 10012
• Contoh 2: ̶ 1010 = ...2
̶ 1010 = 16 – 10 = +6 = 0110011022
Jadi +610 = ̶ 1010 ??? (ambigu !)
• Solusinya dibuat aturan sbb:
IFIF MSB = 0MSB = 0 THEN bilangan adalahTHEN bilangan adalah POSITIFPOSITIF
(magnitude = unsigned integer)(magnitude = unsigned integer)
ELSEELSE bilangan adalah NEGATIFbilangan adalah NEGATIF
(magnitude = M – X)(magnitude = M – X)
Jadi 0110011022 hanya untuk bilangan +6hanya untuk bilangan +61010 saja,saja, –10–101010 = ??= ??
23. Signed Integer: Komplemen 2Signed Integer: Komplemen 2
(Radix Complement(Radix Complement)) (6)(6)
• Cakupan nilai:Cakupan nilai:
• Contoh untuk bilangan 16 bit: ̶ (2Contoh untuk bilangan 16 bit: ̶ (216-116-1
)) ≤≤ II ≤≤ +(2+(216-116-1
̶ 1)̶ 1)
• = ̶ 32768= ̶ 32768 ≤≤ II ≤≤ +32767 (tipe sign int)+32767 (tipe sign int)
• AritmatikaAritmatika PenjumlahanPenjumlahan::
• Contoh aritmatika m= 5 bitContoh aritmatika m= 5 bit
( ) ( )122 11
−+≤≤− −− mm
I
24. Signed Integer: Komplemen 2Signed Integer: Komplemen 2
(Radix Complement(Radix Complement)) (7)(7)
Kapan Overflow terjadi ???:
bilangan positif + bilangan positif = bilangan negatif
bilangan negatif + bilangan negatif = bilangan positif
Berapa komplemen 2 dari 00000 ?
Komplemen 2 banyak
diterapkan di komputer !!
25. Signed Integer: Komplemen 2Signed Integer: Komplemen 2
(Radix Complement(Radix Complement)) (8)(8)
Organisasi fungsional untukOrganisasi fungsional untuk PenjumlahanPenjumlahan::
27. Signed Integer: Komplemen 2Signed Integer: Komplemen 2
(Radix Complement(Radix Complement)) (10)(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
29. Signed Integer: Komplemen 2Signed Integer: Komplemen 2
(Radix Complement(Radix Complement)) (12)(12)
unit baru
Organisasi fungsional untukOrganisasi fungsional untuk PenguranganPengurangan::
30. Signed Integer: Komplemen 1Signed Integer: Komplemen 1
(Diminished Radix Complement(Diminished Radix Complement)) (1)(1)
• Diminished = ...
• Merupakan varian dari komplemen 2
• Komplemen dilakukan dengan cara:Komplemen dilakukan dengan cara:
– GGanti semua bit 1 dengan 0 dan semua bit 0 dengan 1anti semua bit 1 dengan 0 dan semua bit 0 dengan 1
– TTanpa penambahan dengan +1anpa penambahan dengan +1
– CarryCarry tidaktidak dibuangdibuang
• CakupanCakupan nilai:nilai:
• Misal:Misal:
Untuk bilangan 16 bit: ̶ (2Untuk bilangan 16 bit: ̶ (216-116-1
̶ 1)̶ 1) ≤≤ II ≤≤ +(2+(216-116-1
̶ 1)̶ 1)
XMX
XX
−−=−
=+
)1(
( ) ( )1212 11
−+≤≤−− −− mm
I
32. Signed Integer: Komplemen 1Signed Integer: Komplemen 1
(Diminished Radix Complement(Diminished Radix Complement)) (3)(3)
Muncul kembali ambiguitas +0 dan –
0
Komplemen 1 jarang digunakan
33. Binary Coded Decimal (BCD)Binary Coded Decimal (BCD) (1)(1)
• Mengapa BCD digunakan ?Mengapa BCD digunakan ?
– Karena kKarena konversionversi bilanganbilangan desimaldesimal ke komplemenke komplemen
2 dapat2 dapat mendominasi waktu eksekusimendominasi waktu eksekusi
• Konversi : tiap digit desimalKonversi : tiap digit desimal empat bit binerempat bit biner
– Contoh: 0Contoh: 01010 = 0000= 000022; 1; 11010 = 0001= 000122; ...; 9; ...; 91010 = 1001= 100122
– TandaTanda ‘+’ dan ‘‘+’ dan ‘––’’ dengandengan kombinasi yang belumkombinasi yang belum
dipakai, contoh : 1010dipakai, contoh : 1010 = ‘+’= ‘+’ dan 1011dan 1011 = ‘–’= ‘–’
• Aplikasi apa yang menggunakan BCD ?Aplikasi apa yang menggunakan BCD ?
– Aplikasi yangAplikasi yang banyakbanyak melibatkan data inputmelibatkan data input
maupun output namun sangat sedikit pemrosesanmaupun output namun sangat sedikit pemrosesan
numerik (contoh :numerik (contoh : payrollpayroll dandan inventoryinventory))
35. • Apa kekurangan BCD ?Apa kekurangan BCD ?
– OOperasi aritmperasi aritmaatiktikaa lebih lamalebih lama (lookup table)(lookup table)
dibanding sign/magnitude maupun 2’s dan 1’sdibanding sign/magnitude maupun 2’s dan 1’s
complementcomplement
– Penjumlahan bilangan dalam BCD dilakukan perPenjumlahan bilangan dalam BCD dilakukan per
digit desimal (4-bit) dan menghasilkandigit desimal (4-bit) dan menghasilkan carrycarry
desimaldesimal (bukan penjumlahan bit per bit)(bukan penjumlahan bit per bit)
• Contoh Aritmatika:Contoh Aritmatika:
(0001) (0001)(0001) (0001) carrycarry
0110 00110110 0011 (+63)(+63)
+0100 1001+0100 1001 (+49)(+49)
0001 0001 0010(+112)0001 0001 0010(+112)
Binary Coded Decimal (BCD)Binary Coded Decimal (BCD) (3)(3)
39. FFloatingloating PPoint Roint R (Notasi Ilmiah)(Notasi Ilmiah) (1)(1)
• Digunakan untuk merepresentasikan
bilangan pecahan di dalam semua komputer
• Notasi floating point R::
M = MantissaM = Mantissa
E = EksponenE = Eksponen
BB = Basis dari eksponen= Basis dari eksponen
• BB ≠≠ basis bilanganbasis bilangan
• Basis bilangan selalu bernilaiBasis bilangan selalu bernilai 22 (biner),(biner),
sementarasementara basis eksponenbasis eksponen BB tidak harustidak harus 22
E
BMR ±
×±=
40. FFloatingloating PPoint Roint R (Notasi Ilmiah)(Notasi Ilmiah) (2)(2)
• Contoh :Contoh :
(a)(a) 1.228,8 = 1,2288 x 101.228,8 = 1,2288 x 1033
M = 1,2288; E = +3; B = 10M = 1,2288; E = +3; B = 10
(b) Tuliskan 1.228,8 dengan notasi ilmiah dan(b) Tuliskan 1.228,8 dengan notasi ilmiah dan
basis eksponen B = 8 !basis eksponen B = 8 !
1.228,8 = 2,40 x 81.228,8 = 2,40 x 833
(caranya ?)(caranya ?)
M = 2,4; E = +3; B = 8M = 2,4; E = +3; B = 8
• Basis eksponen ditentukan dan di-set secaraBasis eksponen ditentukan dan di-set secara hardwarehardware,, tidaktidak
bisa diubah oleh userbisa diubah oleh user
• Contoh :Contoh :
PDP-11 dan VAX-11PDP-11 dan VAX-11 B = 2B = 2
IBM-360 dan 370IBM-360 dan 370 B = 16B = 16
Burroughs BBurroughs B55500500 B = 8B = 8
• BilanganBilangan realreal dalam komputer direpresentasikan hanya dengandalam komputer direpresentasikan hanya dengan
nilainilai MM dandan EE,, sehinggasehingga R = (R = (±M, ±E)±M, ±E)
41. Floating Point: NormalisasiFloating Point: Normalisasi (1)(1)
• Bagaimana cara merepresentasikan floatingBagaimana cara merepresentasikan floating
point secara normal ?point secara normal ?
1.228,81.228,8 = 1,2288 * 10= 1,2288 * 1033
??????
= 0,12288 * 10= 0,12288 * 1044
??????
= 0,012288 * 10= 0,012288 * 1055
??????
= ......= ...... ??????
• NNormalized formormalized form::
– Agar tidak membingungkanAgar tidak membingungkan
– UntukUntuk memaksimalkan akurasi dari representasi bilanganmemaksimalkan akurasi dari representasi bilangan
– MMenempatkan koma tepat dienempatkan koma tepat di sebelah kiri angka penting pertamasebelah kiri angka penting pertama
– Sebelum koma = 0, sesudah koma = bukan nol (jika bisa)Sebelum koma = 0, sesudah koma = bukan nol (jika bisa)
– Nilai mantissa M:Nilai mantissa M:
1
1
<≤ M
B
42. Floating Point: NormalisasiFloating Point: Normalisasi (2)(2)
• Akurasi: jika mantissa = 5 digit,Akurasi: jika mantissa = 5 digit, manakah yangmanakah yang
paling akurat ?paling akurat ?
1.228,8 =1.228,8 = 0,12288 * 100,12288 * 1044
??????
== 0,01228 * 100,01228 * 1055
??????
== 0,00122 * 100,00122 * 1066
??????
• Contoh:Contoh: Normalisasikan !Normalisasikan !
(a) 103,5(a) 103,51010 dengan B = 10 ?dengan B = 10 ?
103,5103,51010 = 0,1035 x 10= 0,1035 x 1033
(b)(b) 0,0000111010,00001110122 dengan B = 2 ?dengan B = 2 ?
0,0000111010,00001110122 == 0,111010,1110122 xx 22-4-4
(c)(c) 10011,11010011,11022 x 2x 21010
dengan B = 2 ?dengan B = 2 ?
10011,11010011,110 xx 221010
= 0,10011110= 0,10011110 xx 221515
43. Floating Point: NormalisasiFloating Point: Normalisasi (3)(3)
(d)(d) 0,0000110,00001122 x 8x 822
dengan B = 8 ?dengan B = 8 ?
8 = 28 = 233
⇒⇒ pergeseran per 3 bit !pergeseran per 3 bit !
0,0000110,00001122 x 8x 822
= 0= 0000000,011,01122 xx 8811
== 00,011,01122 xx 8811
(e)(e) 0,00010,000122 x 16x 1655
dengan B = 16 ?dengan B = 16 ?
16 = 216 = 244
⇒⇒ pergeseran per 4 bit !pergeseran per 4 bit !
0,00010,000122 x 16x 1655
== sudah normal !sudah normal !
(f)(f) 0,0000110,00001122 x 16x 1655
dengan B = 16 ?dengan B = 16 ?
0,0000110,00001122 x 16x 1655
= 0= 000000000,,111122 xx 161644
== 00,11,1122 xx 161644
44. RepresentasiRepresentasi MantissaMantissa dandan
EksponenEksponen
• Model representasi yang mana yang digunakan
untuk merepresentasikan mantissa ?
– Sign/magnitude, komplemen 1, komplemen 2 , atau BCD
dapat digunakan, tergantung perancang komputer
– Contoh:
PDP-11 dan VAX-11 menggunakan sign/magnitude
• Model representasi yang mana yang digunakan
untuk merepresentasikan eksponen ?
– Ke-4 model representasi dapat digunakan
– Yang banyak digunakan: notasi bias atau notasi excess-n, n
= 2m-1
45. Excess-nExcess-n (1)(1)
• Cara kCara konversi:onversi: e’ = e +e’ = e + 22m-1m-1
– e’ = eksponen biase’ = eksponen bias
– e = eksponen sebenarnyae = eksponen sebenarnya
– mm = jumlah= jumlah bitbit
• Contoh:Contoh:
bilangan 8-bit (m = 8)bilangan 8-bit (m = 8) 22m-1m-1
= 128= 128 excess 128excess 128
––331010 –3–31010 + 128+ 1281010 = 125= 1251010 = 01111101= 0111110122
001010 = ...= ...22; –100; –1001010 = ...= ...22; 128; 1281010 = ...= ...22
• Range nilai:Range nilai:
––22m-1m-1
≤≤ EE ≤≤ +(2+(2m-1m-1
–1)–1)
Untuk m = 8 bit:Untuk m = 8 bit: –128 ... +127–128 ... +127 e’ =e’ = 0 ... 2550 ... 255
• Sama dengan komplemen 2Sama dengan komplemen 2 dengan bit tanda yangdengan bit tanda yang
didinegasikannegasikan
46. Excess-nExcess-n (2)(2)
• Apa manfaat konversi dariApa manfaat konversi dari
eksponen ke eksponen bias ?eksponen ke eksponen bias ?
– Mempermudah atau mempercepatMempermudah atau mempercepat
perbandingan 2 buah bilanganperbandingan 2 buah bilangan
Contoh eksponen bias untuk m = 5 bit
47. BerapaBerapa jumlah bitjumlah bit untukuntuk
MantissaMantissa dandan Eksponen ?Eksponen ? (1)(1)
• Makin banyak jumlah digit mantisa ⇒ semakin
presisi
• Makin banyak digit eksponen ⇒ cakupan (range)
bilangan yang dapat direpresentasikan makin lebar
• Makin besar basis bilangan B ⇒ cakupan bilangan
makin lebar
– Contoh:
Dengan 6 digit eksponen ⇒ cakupan signed eksponen = –
31 hingga +31
Jika B = 2 ⇒ cakupan bilangannya 2–31
hingga 2+31
Jika B = 16 ⇒ cakupan bilangannya 16–31
hingga 16+31
atau 2–
124
hingga 2+124
!!!
48. BerapaBerapa jumlah bitjumlah bit untukuntuk
MantissaMantissa dandan Eksponen ?Eksponen ? (2)(2)
• Makin besar basis bilangan B ⇒ akurasi
berkurang
– Contoh bentuk normal dari 7,510 dengan 4 bit mantissa:
7,510 = 111,12
Dengan basis eksponen 2:
111,12 = 0,1111 x 23
= 7,510
Dengan basis eksponen 16:
111,12 = 0,0111 x 161
= 7,010 (jauh berbeda !!)
• Pilihan penggunaan basis eksponen ditentukan
oleh aspek mana yang lebih dipentingkan (lebar
cakupan atau akurasi)
49. BerapaBerapa jumlah bitjumlah bit untukuntuk
MantissaMantissa dandan Eksponen ?Eksponen ? (3)(3)
• Biasanya setiap sistem komputer mempunyai lebih
dari satu format floating point
• Contoh jumlah bit untuk PDP-11 dan VAX-11:
• Format F:
– 24 bit mantissa ≈ akurasi 7 angka desimal
– 8 bit eksponen ≈ eksponen desimal 10±38
50. 22022008 #50
BerapaBerapa jumlah bitjumlah bit untukuntuk
MantissaMantissa dandan Eksponen ?Eksponen ? (4)(4)
• Format D: (double precision)
– 56 bit mantissa ≈ akurasi 16 angka desimal
• Format H:
– 113 bit mantissa ≈ akurasi 34 angka desimal
– Cakupan bilangan: –10480
≤ R ≤ +10480
• Floating point overflow: ⇒ fatal error !!fatal error !!
– Terjadi jika bilangan yang akan disimpan lebih besar dari
eksponen positif
– Misal bilangan ½ x 2200
akan disimpan pada tipe bilangan F
• Floating point underflow: di-reset ke nol !
– Terjadi jika bilangan yang akan disimpan lebih kecil dari
eksponen negatif
– Misal bilangan ½ x 2–200
akan disimpan pada tipe bilangan F
51. BerapaBerapa jumlah bitjumlah bit untukuntuk
MantissaMantissa dandan Eksponen ?Eksponen ? (5)(5)
• Karakteristik floating point beberapa komputer
52. BagaimanaBagaimana Bit-bitBit-bit Floating PointFloating Point disusundisusun ?? (1)(1)
• Komponen bilangan floating point :
– sign (sebuah bit, terletak paling kiri / MSB)
– mantissa (terletak sesudah eksponen)
– eksponen (terletak bit sign dan bit-bit mantissa)
• IEEE Standard 754 tiga jenis format:
– single precision (32 bit)
– double precision (64 bit)
– extended precision (80 bit) mereduksi error akibat
pembulatan
– Contoh: Intel, Motorola, SPARC, MIPS
}fraksi (mantissa): radix 2;
eksponen: excess-n
53. BagaimanaBagaimana Bit-bitBit-bit Floating PointFloating Point disusundisusun ?? (2)(2)
• Distribusi bit floating point pada PDP-11 dan VAX-11:
• Distribusi bit floating point pada IBM 370:
54. OptimasiOptimasi Bit-bitBit-bit Floating PointFloating Point (1)(1)
• Optimasi: lebih efisien, cepat, akurat
• Fakta untuk B = 2:
– Setelah normalisasi nilai mantissa selalu ≥ ½
– Bit paling kiri (MSB) mantissa selalu 1
• Maka:
– Bit MSB mantissa tidak perlu disimpan
– Lebih akurat 1 digit
– Mantissa 100...0 ditulis menjadi 100...0X
55. OptimasiOptimasi Bit-bitBit-bit Floating PointFloating Point (2)(2)
Contoh:
(a) Bagaimana nilai –3/16 desimal disimpan ke dalam
format F PDP-11 ?
(1) Normalisasi: –3/16 = –3/4 x 2–2
(2) Nilai eksponen bias: e’ = e + 2m-1
e’ = –2 + 28-1
= –2 + 128 = 12610
e’ = 011111102
(3) Nilai mantissa dalam notasi sign/magnitude:
–3/4 = 1 | 11000...0
(4) Buang bit MSB mantissa: –3/4 = 1 | 1000...0
(5) Hasil lengkap:
= 10111111010000000000000000000000
= 277200000008
56. OptimasiOptimasi Bit-bitBit-bit Floating PointFloating Point (3)(3)
(b) Bagaimana nilai +200,0 desimal disimpan ke dalam
format F PDP-11 ?
(1) Normalisasi: +200 = +200/256 x 28
= 25/32 x 28
(2) Nilai eksponen bias: e’ = e + 2m-1
e’ = 8 + 28-1
= 8 + 128 = 13610
e’ = 100010002
(3) Nilai mantissa dalam notasi sign/magnitude:
+25/32 = 0 | 1100100...0
(4) Buang bit MSB mantissa: +25/32 = 0 | 100100...0
(5) Hasil lengkap:
= 01000100010010000000000000000000
= 104220000008
57. OptimasiOptimasi Bit-bitBit-bit Floating PointFloating Point (4)(4)
(c) Jika representasi internal pada PDP-11 dengan format F adalah
277340000008, angka desimal berapakah yang sedang
disimpan ?
(1) Ubah ke biner sebanyak 32 bit:
277340000008 =
101111110111000000000000000000002
(2) Tentukan bilangan positif atau negatif:
MSB = 1 ⇒ bilangan negatif
(3) Cari nilai eksponen:
Eksponen bias = 011111102 = 12610
Eksponen sebenarnya = 126 - 28-1
= 126–128 = –2
(4) Tambahkan bit MSB mantissa:
101111110111100000000000000000002
(5) Cari nilai mantissa:
Mantissa = 11110000...0
= ½ + ¼ + 1/8 + 1/16 = 15/16
(6) Nilai desimalnya = –15/16 x 2–2
58. Kesalahan-KesalahanKesalahan-Kesalahan Floating PointFloating Point (1)(1)
(1) Overflow dan underflow(1) Overflow dan underflow
Jika fraksiJika fraksi == 3 digit desimal bertanda dan eksponen3 digit desimal bertanda dan eksponen == 2 digit desimal bertanda,2 digit desimal bertanda,
maka garis bilangan real terbagi dalammaka garis bilangan real terbagi dalam tujuhtujuh bagian, yakni :bagian, yakni :
1.1. Bilangan negatif yangBilangan negatif yang lebih kecillebih kecil dari –0.999 x 10dari –0.999 x 109999
2.2. Bilangan negatif antara –0.999 x 10Bilangan negatif antara –0.999 x 109999
dan –0.100 x 10dan –0.100 x 10-99-99
3.3. Bilangan negatif dengan nilaiBilangan negatif dengan nilai magnitudemagnitude sangat kecil kurang dari 0.100 x 10sangat kecil kurang dari 0.100 x 10-99-99
4.4. NolNol
5.5. Bilangan positif dengan nilai magnitude sangat kecil kurang dari 0.100 x 10Bilangan positif dengan nilai magnitude sangat kecil kurang dari 0.100 x 10-99-99
6.6. Bilangan positif antara 0.100 x 10Bilangan positif antara 0.100 x 10-99-99
dan 0.999 x 10dan 0.999 x 109999
7.7. Bilangan positif yang lebih besar dari 0.999 x 10Bilangan positif yang lebih besar dari 0.999 x 109999
59. Kesalahan-KesalahanKesalahan-Kesalahan Floating PointFloating Point (2)(2)
(2) Kerapatan (density)
– Bilangan bilangan real tidak pasti (berubah-ubah)
– Antara dua bilangan real, x dan y, selalu ada bilangan
real lain, z = (x + y)/ 2 continuum (rangkaian
kesatuan)
(3) Kesalahan pembulatan (round-off error)
– Tidak dapat merepresentasikan setiap bilangan floating
point secara tepat
– Contoh:
1/5 = 0,210 = 0,0011001100110011...2 (tak terbatas)
Dibatasi dengan jumlah bit mantissa tertentu
Misal 12 bit sign/magnitude dan 6 bit eksponen:
0,210 = 0,110011001102 x 2-2
= 0,798828125 x ¼
= 0,19971 (kurang dari 0,2)
“Jangan pernah menguji balik nilai suatu bilangan real !”
60. Kesalahan-KesalahanKesalahan-Kesalahan Floating PointFloating Point (3)(3)
(4) Kesalahan propagasi (propagation error)
– Terjadi pada operasi aritmatika jika dua bilangan yang
dioperasikan memiliki eksponen yang jauh berbeda
– Langkah-langkah untuk menjumlahkan dua bilangan
real:
1. Samakan eksponen kedua bilangan (penskalaan)
2. Jumlahkan mantissa kedua bilangan
3. Normalisasikan
Contoh 1: 0,123 x 105
+ 0,00456 x 106
61. Kesalahan-KesalahanKesalahan-Kesalahan Floating PointFloating Point (4)(4)
Contoh 2Contoh 2: Penjumlahan +11 dengan +1/4: Penjumlahan +11 dengan +1/4
Jika digunakan 6 bitJika digunakan 6 bit sign/magnitudesign/magnitude untuk mantissa (lima bit ditambahuntuk mantissa (lima bit ditambah
satu bit tanda), dan 4 bitsatu bit tanda), dan 4 bit biased exponentbiased exponent, maka, maka::
signsign expexp mantissamantissa
+11 = +11/16 x 2+11 = +11/16 x 244
= 0 1100 10110= 0 1100 10110
+1/4 = +1/2 x 2+1/4 = +1/2 x 2-1-1
= 0 0111 10000= 0 0111 10000
Samakan eksponennya:Samakan eksponennya:
+11/16 x 2+11/16 x 244
= +11/16 x 2= +11/16 x 244
= 0 1100 10110= 0 1100 10110
+1/2 x 2+1/2 x 2-1-1
= +1/64 x 2= +1/64 x 244
= += + 0 11000 1100 0000000000 (0,00000(0,00000←←,10000,10000))
((x2x255
)) 0 1100 101100 1100 10110 11/16 x 211/16 x 2-4-4
== +11 !!+11 !!
(Propagation error)(Propagation error)
Solusi:
Memperbanyak bit pada mantissa dan eksponen
mengurangi dampak masalah
62. Organisasi Memori Berorientasi WordOrganisasi Memori Berorientasi Word
• Alamat spesifik dariAlamat spesifik dari
lokasi Bytelokasi Byte
– Alamat word pertamaAlamat word pertama
= alamat awal memori= alamat awal memori
(RAM)(RAM)
– Alamat wordAlamat word
selanjutnya melompatselanjutnya melompat
4 alamat (32-bit) atau4 alamat (32-bit) atau
8 alamat (64-bit)8 alamat (64-bit)
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
32-bit
Words
Bytes Addr.
Memory
0012
0013
0014
0015
64-bit
Word
s
Addr
=
??
Addr
=
??
Addr
=
??
Addr
=
??
Addr
=
??
Addr
=
??
0000
0004
0008
0012
0000
0008
63. Big Endian dan Little EndianBig Endian dan Little Endian
• Big EndianBig Endian
– Least significant byteLeast significant byte memilikimemiliki
alamat tertinggialamat tertinggi
– Contoh: Sun, Macintosh, MotorolaContoh: Sun, Macintosh, Motorola
6800, 68000, IBM system/3606800, 68000, IBM system/360
• Little EndianLittle Endian
– Least significant byte memilikiLeast significant byte memiliki
alamat terkecilalamat terkecil
– Alphas, 6502, Z80, x86, PDP-11Alphas, 6502, Z80, x86, PDP-11
MSB LSB
LSB MSB
64. Representasi VariabelRepresentasi Variabel
• Contoh
– Sebuah variable x memiliki data sebanyak 4-byte:
0x01234567
– Alamat yang diberikan &x adalah 0x100
0x100 0x101 0x102 0x103
01 23 45 67
0x100 0x101 0x102 0x103
67 45 23 01
Big Endian
Little Endian
01 23 45 67
67 45 23 01
65. Representasi IntegerRepresentasi Integer
• int A = 15213;
• int B = -15213;
• long int C = 15213;
3 komputer: Linux, Alpha, dan Sun
Linux + Alpha = Little endian; Sun = Big endian
Decimal: 15213
Binary: 0011 1011 0110
1101
Hex: 3 B 6 D
Decimal: -15213
Binary: 1100 0100 1001 0011
Hex: C 4 9 3
6D
3B
00
00
Linux/Alpha A
3B
6D
00
00
Sun A
93
C4
FF
FF
Linux/Alpha B
C4
93
FF
FF
Sun B
representasi Two’s complement
00
00
00
00
6D
3B
00
00
Alpha C
3B
6D
00
00
Sun C
6D
3B
00
00
Linux C
66. Representasi PointersRepresentasi Pointers
Contoh: int B = -15213; int *P = &B;
Alpha Address
Hex: 1 F F F F F C A 0
Binary: 0001 1111 1111 1111 1111 1111 1100 1010
0000 01
00
00
00
A0
FC
FF
FF
Alpha P
Sun Address
Hex: E F F F F B 2 C
Binary: 1110 1111 1111 1111 1111 1011 0010
1100
Compilers & mesin yg beda akan merepresentasikan pada lokasi yg beda
FB
2C
EF
FF
Sun P
FF
BF
D4
F8
Linux P
Linux Address
Hex: B F F F F 8 D 4
Binary: 1011 1111 1111 1111 1111 1000 1101
0100
67. Tipe Data KarakterTipe Data Karakter
Tipe yang dTipe yang dominan :ominan :
• ASCIIASCII ((American Standard Code for InformationAmerican Standard Code for Information
InterchangeInterchange))
standarstandar proses transfer informasi antar komputerproses transfer informasi antar komputer
• EBCDICEBCDIC ((Extended Binary-Coded Decimal InterchangeExtended Binary-Coded Decimal Interchange
CodeCode))
EBCDIC secara internal, ASCII secara eksternalEBCDIC secara internal, ASCII secara eksternal
• ASCII (7 bit/code) vs standar format numerik (kelipatan 8ASCII (7 bit/code) vs standar format numerik (kelipatan 8
bit)bit)
– ASCII diimplementasikan dalam 8 bitASCII diimplementasikan dalam 8 bit
– Bit ke-8:Bit ke-8:
selalu bernilai 0selalu bernilai 0
flag untuk mendefinisikan character set expansionflag untuk mendefinisikan character set expansion
error detection (parity genap/ganjil)error detection (parity genap/ganjil)
70. • Strings di C:Strings di C:
– Direpresentasikan dengan array of charactersDirepresentasikan dengan array of characters
– Setiap karakter di-encoded ke dalam format ASCIISetiap karakter di-encoded ke dalam format ASCII
Standard Encoding : 7-bitStandard Encoding : 7-bit
Encoding lain ada, tapi tidak biasaEncoding lain ada, tapi tidak biasa
– String harus diakhiri dengan nullString harus diakhiri dengan null
Karakter akhir = 0Karakter akhir = 0
Karakter “0” memiliki kodeKarakter “0” memiliki kode 0x300x30
Digit i memiliki kode 0x30+i
• KompatibilitiKompatibiliti
– Urutan Byte bukan issueUrutan Byte bukan issue
Data merupakan single byte quantitiesData merupakan single byte quantities
– Text files secara umum platform independentText files secara umum platform independent
Kecuali untuk konvensi yang bedaKecuali untuk konvensi yang beda
Representasi StringRepresentasi String
Linux/Alpha S Sun S
char S[6] = "15213";
32
31
31
35
33
00
32
31
31
35
33
00
71. Penanganan Kesalahan DenganPenanganan Kesalahan Dengan ParitasParitas
(1)(1)
• Mendeteksi kesalahan data padaMendeteksi kesalahan data pada level bitlevel bit
• Bit paritasBit paritas: bit ekstra yang ditambahkan pada suatu: bit ekstra yang ditambahkan pada suatu
unit data terkecil untuk digunakan dalam prosesunit data terkecil untuk digunakan dalam proses
pengecekan kebenaran data pada saat penyimpananpengecekan kebenaran data pada saat penyimpanan
atau proses transmisiatau proses transmisi
• Bit paritas yang ditambahkan merupakan hasilBit paritas yang ditambahkan merupakan hasil
keluaran dari suatu fungsi yang menerima masukankeluaran dari suatu fungsi yang menerima masukan
berupa seluruh data pada unit terkecil tersebutberupa seluruh data pada unit terkecil tersebut
• Jenis paritasJenis paritas: paritas genap (: paritas genap (eveneven) & paritas ganjil) & paritas ganjil
((oddodd))
– Paritas genap:Paritas genap:
Menambahkan sebuah bit sehingga total bit ‘1’ suatu wordMenambahkan sebuah bit sehingga total bit ‘1’ suatu word
berjumlah genapberjumlah genap
– Paritas ganjil:Paritas ganjil:
Menambahkan sebuah bit sehingga total bit ‘1’ suatu wordMenambahkan sebuah bit sehingga total bit ‘1’ suatu word
berjumlah ganjilberjumlah ganjil
• MendeteksiMendeteksi maksimal 1 bit errormaksimal 1 bit error, lokasi tidak, lokasi tidak
diketahuidiketahui
72. data
parity
(data + parity)
data'F(data) F(data’)
append separate
parity'’ =
parity’ ?
parity'’
parity' yes
no
accept
‘valid’
data
process for
invalid data
parity generation
network /
storage
error detection
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan ParitasParitas
(2)(2)
ContohContoh::
DataData == 10010011001001,, jenis paritas = paritas genapparitas genap
JikaJika bitbit yang dibacayang dibaca 1001001100100111
JikaJika bitbit yang dibacayang dibaca 1011001101100111
JikaJika bitbit yang dibacayang dibaca 1011001101100100
datadata dianggapdianggap validvalid
datadata dianggapdianggap tidaktidak validvalid
datadata dianggapdianggap validvalid !!!!
73. Hamming Code single-bitHamming Code single-bit
• BBiasa digunakan dalam konteksiasa digunakan dalam konteks Error ControlError Control
(deteksi maupun koreksi)(deteksi maupun koreksi)
• BBit-bit informasi + bit-bit paritas =it-bit informasi + bit-bit paritas = codewordcodeword
• HammingHamming distancedistance: jumlah perbedaan bit dari dua: jumlah perbedaan bit dari dua
buahbuah codewordcodeword
– ContohContoh CCodewordodeword dengan 7 bit informasi dan 1 bit paritasdengan 7 bit informasi dan 1 bit paritas
genap:genap:
0000000 00000000 0
0000001 10000001 1
0000010 10000010 1
0000011 00000011 0
– Hamming distanceHamming distance = 2= 2 hanya dapat mendeteksi 1-bithanya dapat mendeteksi 1-bit
erroerrorr
• MMendeteksi nendeteksi n errorerror:: Hamming distanceHamming distance n + 1n + 1
• MMe-e-recoverrecover nn errorerror:: Hamming distanceHamming distance 2n + 12n + 1
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan
Hamming CodeHamming Code (1)(1)
74. Penanganan Kesalahan DenganPenanganan Kesalahan Dengan
Hamming CodeHamming Code (2)(2)
• Dapat menentukan posisi dari single-bit error yang terjadi
• Recovery dapat dilakukan dengan meng-inverse bit pada posisi tersebut
• Block (k digit) dikodekan n digit (n > k); dilambangkan dengan (n,k)
• (k/n) = code rate atau code efficiency; 1 - k/n = redundancy
Ilustrasi: Codeword = 7 bit informasi + 4 bit check (pada posisi 2x
) (11,7)
informasi: 1001101
C: check bit menjumlahkan (modulo 2) semua indeks bit yang bernilai 1
Jumlah bit code: 2K
– 1 ≥ M+K
K = jumlah bit kontrol; M = jumlah bit data
Misal M=7
K = 3: 23
–1 ≥ 7 + 3 (salah)
K = 4: 24
–1 ≥ 7 + 4 (ok)
nilai C pada posisi yang bersesuaian
75. Penanganan Kesalahan DenganPenanganan Kesalahan Dengan
Hamming CodeHamming Code (3)(3)
• Pada decoder dilakukan proses serupa (termasuk bit-bit check)Pada decoder dilakukan proses serupa (termasuk bit-bit check)
tidak terdeteksitidak terdeteksi errorerror ((single-bitsingle-bit errorerror))
Contoh jika terjadi error pada bit ke-11:Contoh jika terjadi error pada bit ke-11:
errorerror pada bit ke-11 (representasi biner = 1011)pada bit ke-11 (representasi biner = 1011)
Recovery: invert bitRecovery: invert bit
76. Penanganan KesalahanPenanganan Kesalahan
• JJarang digunakan dalam konteks komunikasiarang digunakan dalam konteks komunikasi
data / jaringan komputer, dimana probabilitasdata / jaringan komputer, dimana probabilitas
terbesar error yang terjadi adalahterbesar error yang terjadi adalah burst errorburst error
• BBiasanya digunakan kode-kode berbasisiasanya digunakan kode-kode berbasis
konvolusikonvolusi
• DDapat digunakan pada aplikasi yang punyaapat digunakan pada aplikasi yang punya
batasanbatasan single-bit errorsingle-bit error, misalnya:, misalnya: errorerror
correcting semiconductor memory systemcorrecting semiconductor memory system