organisasi komputer- representasi informasi
DESCRIPTION
TRANSCRIPT
PI1023 – ORGANISASI PI1023 – ORGANISASI KOMPUTERKOMPUTER
REPRESENTASI INFORMASI
• Representasi Representasi InformasiInformasi• Bit, byteBit, byte, dan, dan word word• Representasi data nRepresentasi data numeriumerikk dan dan
basis bilangan basis bilangan • Representasi komplemen dua dan Representasi komplemen dua dan
bertandabertanda• Sistem Sistem fixedfixed point dan point dan floating floating
pointpoint• RepresentaRepresentasi data bukan numeriksi data bukan numerik
((kode karakterkode karakter))
Pokok BahasanPokok Bahasan
Representasi InformasiRepresentasi Informasi (1)(1)
Converter
External RepresentationInternal 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
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
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 00001 1 00012 2 00103 3 00114 4 01005 5 01016 6 01107 7 01118 8 10009 9 1001A 10 1010B 11 1011C 12 1100D 13 1101E 14 1110F 15 1111
HexDecim
al
Binary
WordWord Size Size (1)(1)
• WordWord merupakan sejumlah bit berukuran tetap merupakan sejumlah bit berukuran tetap yang ditangani secara bersama-sama oleh yang ditangani secara bersama-sama oleh komputerkomputer
• 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 adalah Satuan 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
WordWord Size Size (2)(2)
d = desimal; b = bit
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
Bilangan Desimal Bilangan 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 Representation bilangan natural untuk transaksi
financialfinancial• Kenapa komputer sekarang menggunakan sistem Kenapa komputer sekarang menggunakan sistem
biner dan bukan desimal ?biner dan bukan desimal ?• Implementasi secara elektronikImplementasi secara elektronik
– Sukar disimpanSukar disimpan ENIAC (komp. pertama kali) menggunakan 10 vacuum ENIAC (komp. pertama kali) menggunakan 10 vacuum
tubes/digittubes/digit– Sukar dikirimkanSukar dikirimkan
Memerlukan Memerlukan presisi yg tinggipresisi yg tinggi untuk meng-encode sinyal untuk meng-encode sinyal dengan 10 level pada single wiredengan 10 level pada single wire
– Kehandalan komponen elektronika turun sejalan dengan Kehandalan komponen elektronika turun sejalan dengan waktu penggunaannya (drift)waktu 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.
Bilangan Desimal Bilangan Desimal (2)(2)
Desimal Biner
Bilangan BinerBilangan Biner• Representasi bilangan basis 2Representasi bilangan basis 2
– Representasi 15213Representasi 152131010 as 11101101101101 as 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,1101101101101 as 1,110110110110122 X 2 X 21313
• Implementasi ElektronikImplementasi Elektronik– Mudah untuk disimpan sebagai elemen yang bistable Mudah untuk disimpan sebagai elemen yang bistable
(hanya ada 2 nilai yang berbeda jauh)(hanya ada 2 nilai yang berbeda jauh)– Lebih handal pada Lebih handal pada wire wire yang noise dan inaccurateyang noise dan inaccurate– Mudah diimplementasikan pada fungsi logika digitalMudah diimplementasikan pada fungsi logika digital
• Apa kekurangan bilangan biner ?Apa kekurangan bilangan biner ?
0.0V
0.5V
2.8V
3.3V
0 1 0
Jenis-Jenis Bilangan BinerJenis-Jenis Bilangan Biner• Bilangan bulat biner tak bertanda Bilangan bulat biner tak bertanda
(unsigned integer)(unsigned integer)• Bilangan bulat biner bertanda (signed Bilangan bulat biner bertanda (signed
integer)integer)– Sign/magnitudeSign/magnitude– Komplemen 2 (radix complement)Komplemen 2 (radix complement)– Komplemen 1 (diminished radix Komplemen 1 (diminished radix
complement)complement)– Binary Coded Decimal (BCD)Binary Coded Decimal (BCD)
• Bilangan pecahan biner (floating point)Bilangan pecahan biner (floating point)• Excess 2Excess 2m-1m-1
Bilangan bulat Bilangan bulat Biner tak bertanda Biner 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
Konversi Bilangan Konversi 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
Konversi Bilangan Konversi 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
• ...
Signed Integer : Sign/magnitude Signed Integer : Sign/magnitude (1)(1)
• Dapat merepresentasikan bilangan Dapat merepresentasikan bilangan negatifnegatif • Simple: Simple: Bit terkiri (Bit terkiri (MoMost st SSignificant ignificant BBitit - MSB - MSB) )
dianggap sebagai bit tanda (dianggap sebagai bit tanda (sign bitsign bit))– Bit 0 Bit 0 bilangan positif bilangan positif– bit 1 bit 1 bilangan negatif bilangan negatif
• Bit selain MSB sebagai Bit selain MSB sebagai nilai nilai magnitudemagnitude absolut absolut bilanganbilangan
• Cakupan nilai (I) yang dapat direpresentasikan:Cakupan nilai (I) yang dapat direpresentasikan: ! ! (2(2m-1m-1 ! 1) ! 1) I I +(2 +(2m-1m-1 ! 1) ! 1)
m = banyaknya bitm = banyaknya bit
• Misal:Misal:Untuk bilangan 16 bit: U (2Untuk bilangan 16 bit: U (216-116-1 U 1) U 1) I I +(2 +(216-116-1 U 1) U 1)
= U 32767 = U 32767 I I +32767 +32767
Signed Integer : Sign/magnitude Signed Integer : Sign/magnitude (2)(2)
• Contoh m = 3 :Contoh m = 3 :
• MasalahMasalah: Apakah : Apakah 000 = +0 000 = +0 sama dengan sama dengan 100 = 100 = -0 ???-0 ???– Bagi manusia: +0 dan U 0 adalah samaBagi manusia: +0 dan U 0 adalah sama– Bagi komputer: +0 dan U 0 adalah Bagi komputer: +0 dan U 0 adalah bedabeda, karena , karena
komputer membandingkan 2 buah bilangan secara komputer membandingkan 2 buah bilangan secara bit per bit !!bit per bit !!
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (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: ( U X = M U
X)
0 M-1
Bilangan Positif Bilangan Negatif
kecil besar kecil besar
m nol m satu
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (2)(2)
• Contoh 1: m = 4, maka M = 2m = 24 = 16 +610 = 0110011022, –710 = …2
Cara I: U X = M U X U 710 = 16 – 7 = 9 = 10012
• Contoh 2: U 1010 = ...2 U 1010 = 16 – 10 = +6 = 0110011022
Jadi +610 = U 1010 ??? (ambigu !)• Solusinya dibuat aturan sbb:
IFIF MSB = 0 MSB = 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 +6 hanya untuk bilangan +61010 saja, saja, –10 –101010 = ??= ??
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (3)(3)
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (4)(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:
• Contoh: Untuk m = 5, maka U 510 = ...2
Cara II: (lebih sederhana)
+510 = 00101 nilai X dalam biner 11010 dikomplemenkan: bit 1 0, bit 0 1
1 + 11011 setelah ditambah 1 110112 U 510 dalam komplemen 2
11 XMXkomplemen
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (5)(5)
Latihan: (untuk m = 5)(a) U 610 = ...2 (b) U 910 = ...2 (c) U 1310 = ...2
(d) U 1510 = ...2 (e) U 1810 = ...2
(f) 101012 = ...10
(g) 110012 = ...10
(h) 100002 = ...10
(i) 111112 = ...10
(j) +010 = ...2 (k) 010102 = ...10
(solusi)
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (6)(6)
• Cakupan nilai:Cakupan nilai:
• Contoh untuk bilangan 16 bit: U (2Contoh untuk bilangan 16 bit: U (216-116-1) ) I I +(2 +(216-116-1 U 1) U 1) • = U 32768 = U 32768 I I +32767 (tipe +32767 (tipe
sign int)sign int)
• Aritmatika Aritmatika PenjumlahanPenjumlahan::
• Contoh aritmatika m= 5 bitContoh aritmatika m= 5 bit
122 11 mm I
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (7)(7)
Kapan Overflow terjadi ???:bilangan positif + bilangan positif = bilangan negatifbilangan negatif + bilangan negatif = bilangan positif
Berapa komplemen 2 dari 00000 ?
Komplemen 2 banyak diterapkan di komputer !!
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (8)(8)
Organisasi fungsional untuk Organisasi fungsional untuk PenjumlahanPenjumlahan::
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (9)(9)
Latihan:Latihan:
Dengan m = 6:Dengan m = 6:
(a) (+6) + (-7)(a) (+6) + (-7)
(b) (+7) + (-6)(b) (+7) + (-6)
(c) (-15) + (-16)(c) (-15) + (-16)
(d) (-20) + (-20)(d) (-20) + (-20)
(e) (+31) + (-31)(e) (+31) + (-31)
(f) (-32) + (+12)(f) (-32) + (+12)(solusi)
Signed Integer: Komplemen 2 Signed 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
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (11)(11)Contoh: m = 4:Contoh: m = 4:
(a) (+3) – (+2)(a) (+3) – (+2)
0011 (+3) – 0010 (+2)
(b) (+3) – (+5) (b) (+3) – (+5)
0011 (+3) – 0101 (+5)
(c) (-2) – (-5)(c) (-2) – (-5) 1110 (–2) – 1011 (–5)
0011 (+3) + 1110 (–2) 1|0001 (+1)
0011 (+3) + 1011 (–5) 1110 (–2)
1110 (–2) + 0101 (+5) 1|0011 (+3)
ke carry register
ke carry register
Signed Integer: Komplemen 2 Signed Integer: Komplemen 2 (Radix Complement(Radix Complement) ) (12)(12)
unit baru
Organisasi fungsional untuk Organisasi fungsional untuk PenguranganPengurangan::
Signed Integer: Komplemen 1 Signed 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 anti semua bit 1 dengan 0 dan semua bit 0 dengan 11
– TTanpa penambahan dengan +1anpa penambahan dengan +1– Carry Carry tidaktidak dibuang dibuang
• CakupanCakupan nilai: nilai:
• Misal:Misal:Untuk bilangan 16 bit: U (2Untuk bilangan 16 bit: U (216-116-1 U 1) U 1) I I +(2 +(216-116-1 U 1) U 1)
= U 32767 = U 32767 I I +32767 +32767 (sama dengan sign/magnitude)(sama dengan sign/magnitude)
XMX
XX
)1(
1212 11 mm I
Signed Integer: Komplemen 1 Signed Integer: Komplemen 1 (Diminished Radix Complement(Diminished Radix Complement) ) (2)(2)
Signed Integer: Komplemen 1 Signed Integer: Komplemen 1 (Diminished Radix Complement(Diminished Radix Complement) ) (3)(3)
Muncul kembali ambiguitas +0 dan –0 Komplemen 1 jarang digunakan
Binary Coded Decimal (BCD) Binary Coded Decimal (BCD) (1)(1)
• Mengapa BCD digunakan ?Mengapa BCD digunakan ?– Karena kKarena konversi onversi bilangan bilangan desimal desimal ke komplemen 2 ke komplemen 2
dapatdapat mendominasi waktu eksekusi mendominasi waktu eksekusi
• Konversi : tiap digit desimal Konversi : tiap digit desimal empat bit biner empat bit biner– Contoh: 0Contoh: 01010 = 0000 = 000022; 1; 11010 = 0001 = 000122; ...; 9; ...; 91010 = 1001 = 100122
– Tanda Tanda ‘+’ dan ‘‘+’ dan ‘––’ ’ dengan dengan kombinasi yang belum kombinasi yang belum dipakai, contoh : 1010dipakai, contoh : 1010 = ‘+’ = ‘+’ dan 1011 dan 1011 = ‘–’ = ‘–’
• Aplikasi apa yang menggunakan BCD ?Aplikasi apa yang menggunakan BCD ? – Aplikasi yangAplikasi yang banyak banyak melibatkan data input melibatkan data input
maupun output namun sangat sedikit pemrosesan maupun output namun sangat sedikit pemrosesan numerik (contoh : numerik (contoh : payroll payroll dan dan inventoryinventory) )
Binary Coded Decimal (BCD) Binary Coded Decimal (BCD) (2)(2)
• Contoh Contoh
1.2341.2341010 = = 00010001001000100011001101000100
– –5675671010 = = 10111011010101010110011001110111
1 2 3 4
‘–’ 5 6 7
• Apa kekurangan BCD ?Apa kekurangan BCD ?– OOperasi aritmperasi aritmaatiktikaa lebih lama lebih lama (lookup table) (lookup table)
dibanding sign/magnitude maupun 2’s dan dibanding sign/magnitude maupun 2’s dan 1’s1’s complement complement
– Penjumlahan bilangan dalam BCD dilakukan Penjumlahan bilangan dalam BCD dilakukan per digit desimal (4-bit) dan menghasilkan per digit desimal (4-bit) dan menghasilkan carry carry desimaldesimal (bukan penjumlahan bit per bit)(bukan penjumlahan bit per bit)
• Contoh Aritmatika:Contoh Aritmatika: (0001) (0001)(0001) (0001) carry carry
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)
Floating Point Floating Point (1)(1)
Bilangan floating point (pecahan):
dndn-1dn-2...d2d1d0.d-1d-2d-3... =
dnrn+ dn-1rn-1 + dn-2rn-2
...+ d2r2 + d1r1 + d0r0 + d-1r-1
+ d-2r-2 + d-3r-3 ...
Contoh :(a) 110,011012 = 1x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 + 1x2-3 + 0x2-4 + 1x2-5
= 4 + 2 + 0 + 0 + 1/4 + 1/8 + 0 + 1/32 = 6 + 0,25 + 0,125 + 0,03125 = 6,4062510
(b) 101,1012 = 1x22 + 0x21 + 1x20 + 1x2-1 + 0x2-2 + 1x2-3
= 4 + 0 + 1 + ½ + 0 + 1/8= 5 + 0,5 + 0,125 = 5,62510
Floating Point Floating Point (2)(2)
((cc) 0,375) 0,3751010 == ......22
(d) 0,3(d) 0,310 10 = = ......22Jika akurasinya 5 digit, maka:
0,310 = 0,010012
Floating Point Floating Point (3)(3)
((ee) 0,3) 0,377551010 == ......44 0,375 X 4 1,500 X 4 2,000
0,30,377551010 == 0,12 0,1244
(f) 1,234(f) 1,2345 5 = = ......1010
= 1x50 + 2x5-1 + 3x5-2 + 4x5-3
= 1 + 2x0,2 + 3x0,04 + 4x0,008 = 1 + 0,4 + 0,12 + 0,032 = 1,55210
((gg) 0,) 0,9849841100 == ......1616 (4 digit akurasi) 0,984 X 16 5904 984 + 15,744 X 16 4464 744 + 11,904 X 16 5424 904 + 14,464 X 16 2784 464 + 7,424 0,0,9849841010 == 0,FBE7 0,FBE71616
FFloating loating PPoint Roint R (Notasi (Notasi Ilmiah) Ilmiah) (1)(1)
• Digunakan untuk merepresentasikan bilangan pecahan di dalam semua komputer
• Notasi floating point R::
M = MantissaM = MantissaE = EksponenE = EksponenBB = Basis dari eksponen= Basis dari eksponen
• B B ≠≠ basis bilangan basis bilangan• Basis bilangan selalu bernilai Basis bilangan selalu bernilai 2 2 (biner), (biner),
sementara sementara basis eksponen basis eksponen B B tidak harustidak harus 2 2
EBMR
FFloating loating PPoint Roint R (Notasi (Notasi Ilmiah) 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 secara Basis eksponen ditentukan dan di-set secara hardwarehardware, ,
tidak bisa diubah oleh usertidak bisa diubah oleh user • Contoh : Contoh :
PDP-11 dan VAX-11 PDP-11 dan VAX-11 B = 2 B = 2IBM-360 dan 370 IBM-360 dan 370 B = 16 B = 16Burroughs BBurroughs B55500 500 B = 8 B = 8
• Bilangan Bilangan realreal dalam komputer direpresentasikan hanya dalam komputer direpresentasikan hanya dengan nilai dengan nilai MM dan dan EE, , sehingga sehingga R = (R = (±M, ±E)±M, ±E)
Floating Point: NormalisasiFloating Point: Normalisasi (1) (1)
• Bagaimana cara merepresentasikan Bagaimana cara merepresentasikan floating point secara normal ?floating 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– Untuk Untuk memaksimalkan akurasi dari representasi memaksimalkan akurasi dari representasi
bilanganbilangan– MMenempatkan koma tepat dienempatkan koma tepat di sebelah kiri angka penting sebelah kiri angka penting
pertamapertama– Sebelum koma = 0, sesudah koma = bukan nol (jika Sebelum koma = 0, sesudah koma = bukan nol (jika
bisa)bisa)– Nilai mantissa M:Nilai mantissa M:
11
MB
Floating Point: NormalisasiFloating Point: Normalisasi (2) (2)
• Akurasi: jika mantissa = 5 digit, Akurasi: jika mantissa = 5 digit, manakah manakah yang paling akurat ?yang 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 2 2-4-4
(c) (c) 10011,11010011,11022 x 2 x 210 10 dengan B = 2 ?dengan B = 2 ? 10011,11010011,11022 x x 2 21010 = 0,10011110 = 0,1001111022 xx 2 21515
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 8 811 == 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 16164 4 == 00,11,1122 xx 161644
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
Excess-n Excess-n (1)(1)
• Cara kCara konversi: onversi: e’ = e +e’ = e + 2 2m-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 excess
128128 ––331010 –3 –31010 + 128 + 1281010 = 125 = 1251010 = 01111101 = 0111110122
001010 = ... = ...22; –100; –1001010 = ... = ...22; 128; 1281010 = ... = ...22 • Range nilai:Range nilai:
––22m-1m-1 E E +(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 dengan bit tanda yang yang didinegasikannegasikan
Excess-n Excess-n (2)(2)
• Apa manfaat konversi dari Apa manfaat konversi dari eksponen ke eksponen eksponen ke eksponen bias ?bias ?– Mempermudah atau Mempermudah atau
mempercepat perbandingan 2 mempercepat perbandingan 2 buah bilanganbuah bilangan
Contoh eksponen bias untuk m = 5 bit
Berapa Berapa jumlah bitjumlah bit untuk untuk 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 !!!
Berapa Berapa jumlah bitjumlah bit untuk untuk 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)
Berapa Berapa jumlah bitjumlah bit untuk untuk 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
22022008 #50
Berapa Berapa jumlah bitjumlah bit untuk untuk 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
Berapa Berapa jumlah bitjumlah bit untuk untuk MantissaMantissa dandan Eksponen ?Eksponen ? (5)(5)
• Karakteristik floating point beberapa komputer
BagaimanaBagaimana Bit-bit Bit-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
BagaimanaBagaimana Bit-bit Bit-bit Floating PointFloating Point disusundisusun ?? (2)(2)
• Distribusi bit floating point pada PDP-11 dan VAX-11:
• Distribusi bit floating point pada IBM 370:
s Mantissa
1 8 23 Ukuran field
Format F: Eksponen bias
s Eksponen bias Mantissa
1 8 55 Ukuran field
Format D:
s Eksponen bias Mantissa
1 7 24 Ukuran field
Regular precission
s Eksponen bias Mantissa
1 7 56 Ukuran field
Double precission
OptimasiOptimasi Bit-bit Bit-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...0
X
OptimasiOptimasi Bit-bit Bit-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
OptimasiOptimasi Bit-bit Bit-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
OptimasiOptimasi Bit-bit Bit-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
= –15/64 = –0,234375
Kesalahan-KesalahanKesalahan-Kesalahan Floating Floating Point Point (1)(1)
(1) Overflow dan underflow(1) Overflow dan underflow
Jika fraksi Jika fraksi == 3 digit desimal bertanda dan eksponen 3 digit desimal bertanda dan eksponen == 2 digit desimal 2 digit desimal bertanda, maka garis bilangan real terbagi dalam bertanda, maka garis bilangan real terbagi dalam tujuhtujuh bagian, yakni : bagian, yakni :
1.1. Bilangan negatif yang Bilangan negatif yang lebih kecillebih kecil dari –0.999 x 10 dari –0.999 x 109999
2.2. Bilangan negatif antara –0.999 x 10Bilangan negatif antara –0.999 x 109999 dan –0.100 x 10 dan –0.100 x 10-99-99
3.3. Bilangan negatif dengan nilai Bilangan negatif dengan nilai magnitudemagnitude sangat kecil kurang dari 0.100 sangat kecil kurang dari 0.100 x 10x 10-99-99
4.4. NolNol5.5. Bilangan positif dengan nilai magnitude sangat kecil kurang dari 0.100 x Bilangan positif dengan nilai magnitude sangat kecil kurang dari 0.100 x
1010-99-99
6.6. Bilangan positif antara 0.100 x 10Bilangan positif antara 0.100 x 10-99-99 dan 0.999 x 10 dan 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
Kesalahan-KesalahanKesalahan-Kesalahan Floating Floating Point 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 !”
Kesalahan-KesalahanKesalahan-Kesalahan Floating Floating Point 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
Kesalahan-KesalahanKesalahan-Kesalahan Floating Floating Point Point (4)(4)
Contoh 2Contoh 2: Penjumlahan +11 dengan +1/4: Penjumlahan +11 dengan +1/4Jika digunakan 6 bit Jika digunakan 6 bit sign/magnitudesign/magnitude untuk mantissa (lima bit untuk mantissa (lima bit ditambah satu bit tanda), dan 4 bit ditambah satu bit tanda), dan 4 bit biased exponentbiased exponent, maka, maka:: signsign expexp mantissamantissa+11 = +11/16 x 2+11 = +11/16 x 24 4 = 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 10000Samakan eksponennya:Samakan eksponennya:+11/16 x 2+11/16 x 24 4 = +11/16 x 2= +11/16 x 24 4 = 0 1100 10110= 0 1100 10110+1/2 x 2+1/2 x 2-1 -1 = +1/64 x 2= +1/64 x 24 4 = + = + 0 1100 0 1100 0000000000 (0,00000 (0,00000,10000,10000))
((x2x255)) 0 1100 10110 0 1100 10110 11/16 x 2 11/16 x 2-4-4 = = +11 !!+11 !!
(Propagation error)(Propagation error)Solusi:Memperbanyak bit pada mantissa dan eksponen mengurangi dampak masalah
Organisasi Memori Berorientasi Organisasi Memori Berorientasi WordWord
• Alamat spesifik Alamat spesifik dari lokasi Bytedari lokasi Byte– Alamat word Alamat word
pertama = alamat pertama = alamat awal memori (RAM)awal memori (RAM)
– Alamat word Alamat word selanjutnya selanjutnya melompat 4 alamat melompat 4 alamat (32-bit) atau 8 (32-bit) atau 8 alamat (64-bit)alamat (64-bit)
000000010002000300040005000600070008000900100011
32-bitWords
Bytes Addr.Memory
0012001300140015
64-bitWords
Addr =??
Addr =??
Addr =??
Addr =??
Addr =??
Addr =??
0000
0004
0008
0012
0000
0008
Big Endian dan Little EndianBig Endian dan Little Endian
• Big EndianBig Endian– Least significant byteLeast significant byte memiliki memiliki
alamat tertinggialamat tertinggi– Contoh: Sun, Macintosh, Contoh: Sun, Macintosh,
Motorola 6800, 68000, IBM Motorola 6800, 68000, IBM system/360system/360
• Little EndianLittle Endian– Least significant byte memiliki Least significant byte memiliki
alamat terkecilalamat terkecil– Alphas, 6502, Z80, x86, PDP-Alphas, 6502, Z80, x86, PDP-
1111
MSB LSB
LSB MSB
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
Representasi IntegerRepresentasi Integer• int A = 15213;• int B = -15213;• long int C = 15213;3 komputer: Linux, Alpha, dan SunLinux + Alpha = Little endian; Sun = Big endian
Decimal: 15213Binary: 0011 1011 0110 1101Hex: 3 B 6 DDecimal: -15213Binary: 1100 0100 1001 0011Hex: C 4 9 3
6D3B0000
Linux/Alpha A
3B6D
0000
Sun A
93C4FFFF
Linux/Alpha B
C493
FFFF
Sun B
representasi Two’s complement
00000000
6D3B0000
Alpha C
3B6D
0000
Sun C
6D3B0000
Linux C
Representasi PointersRepresentasi PointersContoh: 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
01000000
A0FCFFFF
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
FB2C
EFFF
Sun P
FFBF
D4F8
Linux P
Linux Address
Hex: B F F F F 8 D 4 Binary: 1011 1111 1111 1111 1111 1000 1101 0100
Tipe Data KarakterTipe Data Karakter
Tipe yang dTipe yang dominan :ominan :• ASCIIASCII ( (American Standard Code for Information American Standard Code for Information
InterchangeInterchange))standar standar proses transfer informasi antar proses transfer informasi antar komputerkomputer
• EBCDICEBCDIC ( (Extended Binary-Coded Decimal Extended Binary-Coded Decimal Interchange CodeInterchange Code))EBCDIC secara internal, ASCII secara eksternalEBCDIC secara internal, ASCII secara eksternal
• ASCII (7 bit/code) vs standar format numerik ASCII (7 bit/code) vs standar format numerik (kelipatan 8 bit)(kelipatan 8 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 expansion flag untuk mendefinisikan character set expansion error detection (parity genap/ganjil)error detection (parity genap/ganjil)
Kode ASCIIKode ASCII
Oct Dec Hex Name000 0 0x00 NUL001 1 0x01 SOH, Control-A002 2 0x02 STX, Control-B003 3 0x03 ETX, Control-C004 4 0x04 EOT, Control-D005 5 0x05 ENQ, Control-E006 6 0x06 ACK, Control-F007 7 0x07 BEL, Control-G010 8 0x08 BS, Control-H, backspace..................
Table karakter EBCDICTable karakter EBCDIC
• 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 kode Karakter “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";
3231
3135
3300
3231
3135
3300
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan ParitasParitas (1)(1)• Mendeteksi kesalahan data pada Mendeteksi 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 proses unit data terkecil untuk digunakan dalam proses pengecekan kebenaran data pada saat pengecekan kebenaran data pada saat penyimpanan atau proses transmisi penyimpanan atau proses transmisi
• Bit paritas yang ditambahkan merupakan hasil Bit paritas yang ditambahkan merupakan hasil keluaran dari suatu fungsi yang menerima masukan keluaran 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 word Menambahkan sebuah bit sehingga total bit ‘1’ suatu word berjumlah genapberjumlah genap
– Paritas ganjil:Paritas ganjil: Menambahkan sebuah bit sehingga total bit ‘1’ suatu word Menambahkan sebuah bit sehingga total bit ‘1’ suatu word
berjumlah ganjilberjumlah ganjil
• Mendeteksi Mendeteksi maksimal 1 bit errormaksimal 1 bit error, lokasi tidak , lokasi tidak diketahuidiketahui
data
parity
(data + parity)
data'F(data) F(data’)
append separate
parity'’ =parity’ ?
parity'’
parity' yes
no
accept‘valid’data
process forinvalid data
parity generationnetwork /storage
error detection
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan ParitasParitas (2)(2)
ContohContoh::DataData = = 10010011001001,, jenis paritas = paritas genapparitas genap
JikaJika bit bit yang dibaca yang dibaca 1001001100100111 JikaJika bit bit yang dibaca yang dibaca 1011001101100111 JikaJika bit bit yang dibaca yang dibaca 1011001101100100
data data dianggap dianggap validvaliddata data dianggap dianggap tidaktidak validvaliddata data dianggap dianggap validvalid !! !!
Hamming Code single-bitHamming Code single-bit • BBiasa digunakan dalam konteks iasa 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 : jumlah perbedaan bit dari
duadua buah buah codewordcodeword – Contoh Contoh CCodewordodeword dengan 7 bit informasi dan 1 bit dengan 7 bit informasi dan 1 bit
paritas genap:paritas genap: 0000000 00000000 0
0000001 10000001 1 0000010 1 0000010 1 0000011 00000011 0
– Hamming distanceHamming distance = 2 = 2 hanya dapat mendeteksi hanya dapat mendeteksi 1-bit 1-bit erroerrorr
• MMendeteksi n endeteksi n errorerror: : Hamming distanceHamming distance n + 1 n + 1 • MMe-e-recoverrecover n n errorerror: : Hamming distanceHamming distance 2n + 1 2n + 1
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan Hamming CodeHamming Code (1)(1)
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 = redundancyIlustrasi: 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+KK = jumlah bit kontrol; M = jumlah bit data
Misal M=7K = 3: 23–1 7 + 3 (salah)K = 4: 24–1 7 + 4 (ok)
nilai C pada posisi yang bersesuaian
Penanganan Kesalahan DenganPenanganan Kesalahan Dengan Hamming CodeHamming Code (3)(3)
• Pada decoder dilakukan proses serupa (termasuk bit-bit Pada decoder dilakukan proses serupa (termasuk bit-bit check)check)
tidak terdeteksi tidak 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
Penanganan KesalahanPenanganan Kesalahan• JJarang digunakan dalam konteks arang digunakan dalam konteks
komunikasi data / jaringan komputer, komunikasi data / jaringan komputer, dimana probabilitas terbesar error yang dimana probabilitas terbesar error yang terjadi adalah terjadi adalah burst errorburst error
• BBiasanya digunakan kode-kode berbasis iasanya digunakan kode-kode berbasis konvolusikonvolusi
• DDapat digunakan pada aplikasi yang apat digunakan pada aplikasi yang punya batasan punya batasan single-bit errorsingle-bit error, misalnya: , misalnya: error correcting semiconductor memory error correcting semiconductor memory systemsystem
PustakaPustaka[HTT02]http://en.wikipedia.org/wiki/[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.