REPRESENTASI DATA • Data dalam kehidupan manusia – Personal data input [lewat 5 indra] – Mass media [audio/visual] data input [populer, ilmiah, fiksi, riset, dll.] • Pengertian Dasar – Data ‡ Informasi ? – Komunikasi – Kode / notasi / simbol / Icon • Bentuk Kode – Karakter umum: Numerik & Alfabet – Karakter khusus
REPRESENTASI DATA Tipe Representasi data – Eksternal (human-readable) • notasi dalam bahasa pemrograman • fasilitas untuk: programmer, desainer bahasa, user • berbasis notasi aljabar (desimal, sign/magnitude) – Internal (machine readable) • notasi aktual dalam komputer • fasilitas untuk konstruksi HW • meningkatkan efisiensi • menekan harga • HW menjadi handal
REPRESENTASI DATA Program-progam aplikasi yg berbeda menggunakan tipe data yg berbeda, tergantung pd masalah. Program bahasa mesin dapat bekerja dgn data numerik atau data non-numerik. Data numerik dapat berupa bilangan desimal atau bilangan biner. Data non-numerik adalah data dengan tipe sebagai berikut: Data karakter Data alamat Data logika
REPRESENTASI DATA Data biner dapat direpresentasikan sebagai bilangan titik-tetap (fixed-point number) atau sebagai bilangan titik-mengambang (floating-point number). Pada representasi bilangan fixed-point, posisi titik biner adalah sudah pasti , tetap dalam satu tempat. Pada representasi bilangan floating-point posisi titik biner dapat berada di mana saja. Bilangan fixed-point dikenal sebagai bilangan integer (bulat) sedangkan bilangan floating-point dikenal sebagai bilangan real (pecahan).
Operasi aritmetika (penjumlahan dan sebagainya) pada bilangan fixed-point adalah sederhana dan memerlukan perangkat keras yang sedikit (sirkuit yg minimum). Aritmetika bilangan floating-point sulit dan memerlukan perangkat keras yang kompleks. Dibandingkan terhadap bilangan fixed-point, bilangan floating-point mempunyai dua keuntungan:
Dibandingkan terhadap bilangan fixed-point, bilangan floating-point mempunyai dua keuntungan: Nilai maksimum atau minimum yg dapat direpresentasikan dalam representasi bilangan floating-point lebih tinggi daripada fixed-point. Bilangan ini berguna untuk keperluan bilangan yg sangat besar atau bilangan yg sangat kecil Representasi bilangan floating-point lebih akurat dalam operasi aritmetika.
REPRESENTASI DATA Konsep tipe data – Definisi matematik • cardinal / unsigned numbers integer: 0,1,2, …] • signed numbers integer: -2, -1, 0, 1, 2, …] • real number [4.5, -8.47, -0.6* 107 ] • character • string • boolean [true, false] • beragam struktur gabungan 6 tipe di atas
REPRESENTASI DATA – Length : bit, byte, word, double/long word – Storage bit order : most and least significant bit – Tag ~ a group of bits that identifies the word’s type – Error detection & correction [parity bit: even/odd]
REPRESENTASI DATA Unsigned binary (untuk integer m dan I ): NR = bn bn-1 bn-2 ….. b2 b1 b0 = b0 rn + b1 rn-1 + ......... + bn-1 r1 + bn r0
Unsigned Integer – Unsigned integer hanya untuk bilangan positif, jika negatif perlu format baru. – Kelebihan biner • mudah dibuat • tidak ambigu (noise immunity) • bisa dicopy dengan sempurna (flawlessly) • untuk bilangan 8-bit memungkinkan 256 pola 0 & 1, sejumlah: 128 negatif + 128 positif.
Unsigned Integer Unsigned variable disimpan lansung dalam format biner No. of bits Binary Min Max n 2n - 1
Unsigned Integer Type No. of bytes No. of bits Range unsigned char 1 8 0 … 255 unsigned short 2 16 0 … 65,535 unsigned int 4 32 0 … 4,294,967,295 unsigned long
Signed Integer • Representasi – Signed Integer direpresentasikan selain oleh nilai bilangan juga dengan adanya tambahan tanda [negatif]. • Tipe – Sign and Magnitude (SM) – One’s Complement (OC) – Two’s Complement (TC)
Signed Integer • Notasi Sign Magnitude (SM) – Format: – Bila digit pada posisi terkiri (sign) Nol maka bilangan tersebut positif, Satu maka bilangan tersebut negatif [negatif nol =positif nol = nol]. – Rentang SM (untuk integer m dan I):
Signed Integer • Sign Magnitude (SM): – Penjumlahan, aturan: sign tidak dijumlahkan, hanya magnitude buang carry out dari msb magnitude jumlahkan yang sign-nya sama (+ ke + atau - ke - ) sign hasil = sign penambah – Contoh
Signed Integer • Sign Magnitude (SM): – Pengurangan, aturan: lakukan jika sign sama, jika sign berbeda, ubah soal ke penjumlahan perbandingkan magnitude, lakukan: a - b menjadi a + (-b) a + b menjadi a - (-b) – Contoh
Signed Integer • One’s complement (OC) – Definisi • (2n - 1 → memberikan jumlah n digit ) • komplementasi bilangan biner (ubah 1 ke 0 dan 0 ke 1) – Contoh • OC dari 00101110 adalah 11010001 – Rentang nilai
Signed Integer Signed integers are generally stored in 2’s complement format. Most Significant Bit (MSB) is considered the sign bit 1 for negative numbers -- 0 for positive numbers No. of bits Binary 2’s compliment Min Max n -2n-1 2n-1 - 1
Signed Data Types Type No. of bytes No. of bits Range char 1 8 -128 … 127 short 2 16 -32,768 … 32,767 int 4 32 -2,147,483,648 .. 2,147,483,647 long
Signed Integers To change the sign of any number Invert all the bits Add 1 210 == 00102 => 1101 + 1 ---- 11102 => -210 -210 == 11102 => 0001 + 1 ---- 00102 => 210
dibuang
BILANGAN FLOATING-POINT Representasi bilangan floating-point mempunyai tiga bagian: Mantissa Basis Eksponen Contoh : Bilangan Mantissa Basis Eksponen 3 x 106 3 10 6 110 x 28 110 2 8 6132.784 0.6132784 4 34.58 0.3458
Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya (base) adalah yg digunakan oleh komputer tersebut. Umumnya komputer mengikuti basis 2. Umumnya sebuah bilangan f direpresentasikan sebagai f = m x re di mana m adalah mantissa, r adalah basis dari sistem bilangan dan e adalah eksponen (pangkat dari basis yg digunakan). Format umum bilangan floating-point: S Eksponen Mantissa
Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSI/IEEE secara luas (format IEEE 754). Sedangkan IBM mempunyai standar khusus Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal (single precision) dan format standar untuk bilangan presisi ganda (double precision) S Eksponen, 8 bit Mantissa, 23 bit Format floating-point presisi tunggal (32 bit) S Eksponen, 11 bit Mantissa, 52 bit Format floating-point presisi ganda (64 bit)
NORMALISASI FLOATING-POINT Bilangan floating-point dapat direpresentasikan dgn banyak cara seperti yg ditunjukkan untuk bilangan desimal 140 x 28: 140 x 28, 14 x 29, 1400 x 27, 1.4 x 210, 0.14 x 211, .014 x 212 .... dst. Suatu bilangan floating-point berada dalam bentuk ternormalisasi jika Most Significant Digit dari mantissa bukan-nol (non-zero). Untuk mengubah menjadi bilangan yg ternormalisasi, mantissa harus digeser ke kanan atau ke kiri dgn tepat, menaikkan atau menurunkan eksponen. Jika semua bilangan floating-point direpresentasikan dalam komputer dgn bentuk ternormalisasi, maka posisi bit satu dapat disimpan dengan mengabaikan MSB (selalu 1). Ini disebut hidden 1 principle.
FPS (floating point standard) The sign bit adalah 0 untuk bilangan posistip dan 1 untuk bilangan negatip Mantissa direpresentasikan dengan unsigned integer (i.e., bukan 2’s Complement), di mana nilainya dinormalisasi. 23 bit untuk single precision, 52 bit untuk double precision Exponent direpresentasikan dengan unsigned integer 8 bit untuk single precision, 11 bit untuk double precision
Konversi format saintifik ke format standar IEEE Pertama ubah menjadi bilangan biner. Normalisasikan bilangan tsb sehingga terdapat satu digit nonzero di ujung terkiri, lakukan adjust exponent sesuai kebutuhan. Simpan digit biner mantissa ke sisi kanan Tambahkan 127 ke bagian exponent dan ubah hasil penjumlahan tersebut ke biner untuk nilai exponent yg akan disimpan. Untuk double precision, tambahkan 1023 ke exponent. Sign bit = 1 untuk bilangan negatip dan sign bit = 0 untuk bilangan positip.
Representasi nilai = ±1.M x 2E’ 127 Single precision S E’ M representasi 8-bit excess -127 exponent 23-bit mantissa fraction Bit tanda: 0 = + 1 = Representasi nilai = ±1.M x 2E’ 127 biased exponent Double precision S E’ M representasi 11-bit excess -1023 exponent 52-bit mantissa fraction Bit tanda: 0 = + 1 = Representasi nilai = ±1.M x 2E’ 1023
FPS and Hardware Floating point hardware umumnya mempunyai sekumpulan register khusus dan instruksi untuk melaksanakan floating point Juga terdapat instruksi khusus untuk perpindahan data antara memori atau normal register dan floating point register.
Contoh: Tuliskan +0.0010110… x 29 dalam format single precision standar IEEE 754 Solusi: Setelah dinormalisasi : +1.0110… x 26 E’ = 6 + 127 = 133 = 10000101 10000101 0110…
Sehingga representasi single precision (0.75)10 : Contoh: Tuliskan (0.75)10 dalam format single precision standar IEEE Solusi: Sign bit, S = 1 (negatip) 0.75 x 2 = 1.5 → 1 0.5 x 2 = 1.0 → 1 0.0 x 2 = 0.0 → 0 0.11000000 = 0.11000000 x 20 dinormalisasi = 1.100… x 21 M = 10000000000000000000000000 E = 1 E’ = E + 127 = 1 + 127 = 126 = 01111110 Sehingga representasi single precision (0.75)10 : 1 01111110 10000000000000000000000
Latihan: Typical 32-bit floating-point format +1.638125 X 220 = 10010011 10100011010111000010100 1.638125 X 220 = 1 10010011 10100011010111000010100 +1.638125 X 2―20 = 01101011 10100011010111000010100 1.638125 X 2―20 = 1 01101011 10100011010111000010100
Latihan: A. Tuliskan dalam format single precision standar IEEE 754: ( + 5.375 x 103 )10 ( + 200.0 )10 ( - 13.275 )10 ( - 0.05375 x 102 )10 B. Tuliskan dalam format notasi saintifik desimal 10000101 01100000000000000000000
KODE KARAKTER Semua komputer secara internal merepresentasikan karakter dengan menyimpannya sebagai integer non-negatip: 0, 1, 2 … Mapping karakter ke dalam integer disebut kode karakter Awalnya komputer menggunakan kode karakter dgn panjang 6-bit (26 = 64 karakter unik) yg cukup untuk 26 huruf kapital, 10 angka, dan 15 hingga 28 karakter khusus termasuk: , . ( ) : ; - + = / yg dibutuhkan oleh HLL seperti FORTRAN, COBOL dan BASIC
Kode karakter 8 bit yang paling populer adalah ASCII, EBCDIC *) Saat ini komputer merepresentasikan karakter dengan panjang 7 bit dan 8 bit Kode karakter 8 bit yang paling populer adalah ASCII, EBCDIC *) Kode karakter lain yang dapat merepresentasikan semua kode bahasa di dunia adalah Unicode *) ASCII = American Standard Code for Information Interchange EBCDIC = Extended Binary Coded Decimal Interchange Code
KODE KARAKTER ASCII ASCII adalah kode karakter yg ditujukan bagi standar internasional untuk representasi data tekstual ASCII juga biasanya digunakan untuk transmisi informasi biner Setiap karakter direpresentasikan oleh 7–bit kode Biasanya bit kedelapan disisipkan untuk parity (error checking), atau untuk character set expansion
ASCII terdiri dari 128 karakter: 95 karakter merepresentasikan simbol graphic termasuk huruf kecil dan kapital, bilangan 0 sampai 9, puctuation mark dan simbol-simbol khusus; 23 karakter merepresentasikan format effector yang merupakan karakter fungsional untuk pengontrolan layout pencetakan atau display device seperti carriage return, line feed, horizontal tabulation, dan back space; 10 karakter lainnya digunakan untuk aliran komunikasi data langsung dan status report-nya
KODE KARAKTER EBCDIC Kode EBCDIC adalah kode alphanumerik lain yang digunakan dalam peralatan IBM Setiap karakter direpresentasikan oleh 8–bit kode dan bit kesembilan disisipkan untuk parity Kode EBCDIC mempunyai simbol karakter yang sama dengan ASCII tetapi tetapi penetapan bit-bit untuk karakter berbeda.
KODE KARAKTER Unicode Unicode—coding scheme capable of representing all world’s languages
KODE BINER LAIN Kode Gray, kode ini digunakan untuk aplikasi khusus Keuntungan kode Gray dibandingkan dengan kode biner langsung adalah karena kode gray hanya mengubah satu bit dalam urutan kode tsb, dari 0 ke 1 atau dari 1 ke 0. Aplikasi typical kode Gray adalah ketika data analog direpresentasikan dengan perubahan kontinyu dari sebuah posisi shaft (shaft encoder)
Tabel Kode Gray 4-bit Kode Gray Ekivalen desimal 0000 1100 8 0001 1 1101 9 0011 2 1111 10 0010 3 1110 11 0110 4 1010 12 0111 5 1011 13 0101 6 1001 14 0100 7 1000 15
KODE BINER LAIN → kode desimal (BCD, 2421, Excess-3, Excess-3 Gray) Kode Desimal BCD Kode BCD (binary coded decimal) adalah bilangan desimal yang dikodekan secara biner Kode BCD dasar 4-bit disebut packed BCD, sedangkan kode BCD yang diperluas disebut unpacked BCD, misalnya unpacked BCD 1 byte. Kode BCD unpacked dibentuk dengan cara menggabungkan packed BCD dengan kelipatan 4-bit (nibble)
12 = 00010010unpacked BCD 97 = 10010111unpacked BCD Packed BCD
Penjumlahan BCD + + + 13 = 00010011 65 = 01100101 78 = 01111000 1 AC 13 = 00010011 65 = 01100101 78 = 01111000 + + 29 = 00101001 18 = 00011000 01000001 = 41 1 AC hasil error 0110 korektor + 47 = 01000111
KODE BINER LAIN → kode desimal (BCD, 2421, Excess-3, Excess-3 Gray) Kode desimal 2421 Kode 2421 merupakan kode berbobot (weighted code), di mana bit-bit dikalikan dengan bobot yang ditunjukkan dan jumlah dari bit-bit bobot tsb merupakan digit desimal Misalnya: 11012421 = 2x1 + 4x1 + 2x0 + 1x1 = 710 (lihat tabel)
Desimal 2421 Excess-3 Excess-3 Gray 0000 0011 0010 1 0001 0100 0110 2 0101 0111 3 4 5 1011 1000 1100 6 1001 1101 7 1010 1111 8 1110 9 Bit kombinasi Ini tidak digunakan
KODE BINER LAIN → kode desimal (BCD, 2421, Excess-3, Excess-3 Gray) Kode desimal Excess-3 Gray Kode Gray (lihat tabel) tidak cocok untuk kode desimal jika kita ingin memilih 10 entry pertama pada tabel, karena transisi dari 9 ke 0 melibatkan perubahan tiga bit (yaitu dari 1101 ke 0000) Untuk mengatasi kesulitan di atas, kita pilih 10 bilangan dimulai dari entry ketiga 0010 hingga entry keduapuluh 1010. Jadi transisi dari 1010 ke 0010 hanya berubah satu bit.
to be Continued … ! thanks, see you later