REPRESENTASI DATA Pengantar Komputer . Pendahuluan Materi ini mendiskusikan beberapa konsep penting mencakup sistem bilangan biner dan hexadecimal, organisasi data biner (bit, nibbles, byte, kata/word, dan double word), sistem penomoran bertanda (signed) dan tidak bertanda (unsigned), aritmatika, logika, shift/geser, dan operasi rotate pada nilai biner, bit field dan paket data, dan himpunan karakter ASCII Sistem Bilangan dan Konversi Bilangan Pendahuluan Ada beberapa sistem bilangan yang digunakan dalam sistem digital. Yang paling umum adalah sistem bilangan desimal, biner, oktal dan heksadesimal Sistem bilangan desimal merupakan sistem bilangan yang paling familier dengan kita karena berbagai kemudahannya yang kita pergunakan sehari – hari. Sistem Bilangan Secara matematis sistem bilangan bisa ditulis seperti contoh di bawah ini: Bilangan : Dr d n 1 , d n2 ,, d1 , d 0 , d 1 ,, d n Nilai : Dr i n d i r n 1 i Contoh: Bilangan desimal: 5185.6810 = 5x103 + 1x102 + 8x101 + 5x100 + 6 x 10-1 + 8 x 10-2 = 5x1000 + 1x100 + 8x10 + 5 x 1 + 6x0.1 + 8x0.01 Bilangan biner (radiks=2, digit={0, 1}) 100112 = 1 16 + 0 8 + 0 4 + 1 2 + 1 1 = 1910 MSB LSB 101.0012 = 1x4 + 0x2 + 1x1 + 0x.5 + 0x.25 + 1x.125 = 5.12510 Sistem Radiks Himpunan/elemen Digit Desimal r=10 {0,1,2,3,4,5,6,7,8,9} Biner r=2 {0,1} Oktal r= 8 {0,1,2,3,4,5,6,7} Heksadesimal r=16 {0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F} 25510 111111112 3778 Desimal 0 1 2 3 4 5 6 7 8 9 Heksa Biner 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 Contoh FF16 10 11 12 13 14 15 A B C D E F 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Konversi Radiks-r ke desimal Rumus konversi radiks-r ke desimal: Dr i n di r i n 1 Contoh: 11012 = 123 + 122 + 120 = 8 + 4 + 1 = 1310 5728 = 582 + 781 + 280 = 320 + 56 + 16 = 39210 2A16 = 2161 + 10160 = 32 + 10 = 4210 Konversi Bilangan Desimal ke Biner Konversi bilangan desimal bulat ke bilangan Biner: Gunakan pembagian dgn 2 secara suksesif sampai sisanya = 0. Sisa-sisa pembagian membentuk jawaban, yaitu sisa yang pertama akan menjadi least significant bit (LSB) dan sisa yang terakhir menjadi most significant bit (MSB). Contoh: Konersi 17910 ke biner: 179 / 2 = 89 sisa 1 (LSB) / 2 = 44 sisa 1 / 2 = 22 sisa 0 / 2 = 11 sisa 0 / 2 = 5 sisa 1 / 2 = 2 sisa 1 / 2 = 1 sisa 0 / 2 = 0 sisa 1 (MSB) 17910 = 101100112 MSB LSB Konversi Bilangan Desimal ke Oktal Konversi bilangan desimal bulat ke bilangan oktal: Gunakan pembagian dgn 8 secara suksesif sampai sisanya = 0. Sisa-sisa pembagian membentuk jawaban, yaitu sisa yang pertama akan menjadi least significant bit (LSB) dan sisa yang terakhir menjadi most significant bit (MSB). Contoh: Konversi 17910 ke oktal: 179 / 8 = 22 sisa 3 (LSB) / 8 = 2 sisa 6 / 8 = 0 sisa 2 (MSB) 17910 = 2638 MSB LSB Konversi Bilangan Desimal ke Hexadesimal Konversi bilangan desimal bulat ke bilangan hexadesimal: Gunakan pembagian dgn 16 secara suksesif sampai sisanya = 0. Sisasisa pembagian membentuk jawaban, yaitu sisa yang pertama akan menjadi least significant bit (LSB) dan sisa yang terakhir menjadi most significant bit (MSB). Contoh: Konversi 17910 ke hexadesimal: 179 / 16 = 11 sisa 3 (LSB) / 16 = 0 sisa 11 (dalam bilangan hexadesimal berarti B)MSB 17910 = B316 MSB LSB Konversi Bilangan Biner ke Oktal Untuk mengkonversi bilangan biner ke bilangan oktal, lakukan pengelompokan 3 digit bilangan biner dari posisi LSB sampai ke MSB Contoh: konversikan 101100112 ke bilangan oktal Jawab : 10 110 011 2 6 3 Jadi 101100112 = 2638 Konversi Bilangan Oktal ke Biner Sebaliknya untuk mengkonversi Bilangan Oktal ke Biner yang harus dilakukan adalah terjemahkan setiap digit bilangan oktal ke 3 digit bilangan biner Contoh Konversikan 2638 ke bilangan biner. Jawab: 2 6 3 010 110 011 Jadi 2638 = 0101100112 Karena 0 didepan tidak ada artinya kita bisa menuliskan 101100112 Konversi Bilangan Biner ke Hexadesimal Untuk mengkonversi bilangan biner ke bilangan hexadesimal, lakukan pengelompokan 4 digit bilangan biner dari posisi LSB sampai ke MSB Contoh: konversikan 101100112 ke bilangan heksadesimal Jawab : 1011 0011 B 3 Jadi 101100112 = B316 Konversi Bilangan Hexadesimal ke Biner Sebaliknya untuk mengkonversi Bilangan Hexadesimal ke Biner yang harus dilakukan adalah terjemahkan setiap digit bilangan Hexadesimal ke 4 digit bilangan biner Contoh Konversikan B316 ke bilangan biner. Jawab: B 3 1011 0011 Jadi B316 = 101100112 Tugas Konversikan Bilangan di Bawah ini 8910 3678 110102 7FD16 = ……16 = ……2 = ……10 = ……8 29A16 1101112 35910 4728 = ……10 = …….8 = ……2 = ……16 Jawaban Konversi 8910 ke hexadesimal: 89 / 16 = 5 sisa 9 8910 = 5916 Konversi 3678 ke biner: 3 = 011 ; 6 = 110 ; 7 = 111 » 0111101112 = 111101112 Konversi 110102 ke desimal: = 124 + 123 +022 + 121 + 020 = 16 + 8 + 2 = 2610 Jawaban Konversi 7FD16 ke oktal: 7 = 0111 ; F = 1111 ; D = 1101 0111111111012 = 111111111012 111111111012 = 37758 » 7FD16 = 37758 Konversi 29A16 ke desimal: = 2162 + 9161 + A160 = 512 + 144 + 10 = 66610 Jawaban Konversi 1101112 ke Oktal 110= 6 ; 111 = 7 1101112 = 678 Konversi 35910 ke biner 359 / 2 = 179 sisa 1 (LSB) / 2 = 89 sisa 1 / 2 = 44 sisa 1 / 2 = 22 sisa 0 / 2 = 11 sisa 0 / 2 = 5 sisa 1 / 2 = 2 sisa 1 / 2 = 1 sisa 0 / 2 = 0 sisa = 1 (MSB) 35910 = 1011001112 Jawaban Konversi 4728 ke hexadecimal = 314 4728 = 1001110102 4 7 2 100 111 010 1001110102 = 13A16 Organisasi Data Pendahuluan Komputer secara umum bekerja dengan beberapa jumlah bit khusus. Kumpulan yang Umum adalah bit tunggal, kelompok empat bit (disebut nibbles), kelompok delapan bit (disebut byte), kelompok 16 bit (disebut word), dan lain-lain. Bits "Unit" paling kecil dari data pada komputer biner adalah satu bit tunggal. satu bit tunggal mampu merepresentasikan hanya dua nilai yang berbeda (secara tipikal nol atau satu) Anda bisa merepresentasikan dua item data apapun yang berbeda dengan satu bit tunggal. Contoh meliputi nol atau satu, benar atau salah, on atau off, pria atau wanita. Anda tidak dibatasi untuk merepresentasikan jenis data biner (yaitu, objek yang hanya mempunyai dua nilai yang berbeda). Bits Data adalah apa yang anda ingin definisikan. Jika anda menggunakan bit untuk merepresentasikan suatu nilai boolean (benar/salah) maka bit itu (oleh definisi anda) merepresentasikan benar atau salah. Agar bit mempunyai maksud/arti yang benar, anda harus konsisten. Maka, jika anda sedang menggunakan bit untuk merepresentasikan benar atau salah di dalam program anda, anda tidak boleh menggunakan nilai benar/salah yang disimpan dalam bit tsb untuk merepresentasikan merah atau biru. Nibbles nibble adalah satu koleksi empat bit. Ia bukan merupakan jenis data yang menarik kecuali dua item: bilangan BCD (binary coded decimal) dan bilangan berbasis enambelas. Ia menggunakan empat bit untuk merepresentasikan satu BCD tunggal atau digit hexadecimal. Dengan suatu nibble, kita bisa merepresentasikan sampai dengan 16 nilai berbeda. Nibbles Dalam kasus bilangan berbasis enambelas, nilai dapat berupa 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F direpresentasikan dengan empat bit. BCD menggunakan sepuluh angka berbeda (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Bytes Struktur data terpenting yang digunakan oleh mikroprosesor 80x86 adalah byte. Sebuah byte terdiri dari delapan bit dan adalah datum addressable paling kecil (data item) pada mikroprosesor 80x86. Memori Utama dan alamat I/O pada 80x86 adalah semua alamat byte. Artinya bahwa item paling kecil yang mungkin diakses secara individu oleh satu program 80x86 adalah nilai delapan-bit. Bytes Bit dalam satu byte secara normal dinomori dari nol sampai tujuh menggunakan konvensi di dalam gambar 1.1. Bit 0 adalah urutan bit terendah atau bit paling tidak berarti (signifikan), bit 7 adalah urutan bit paling berarti (signifikan) dari byte. Kita akan mengacu pada penomoran semua bit lain. Bytes Gambar 1.1: Penomoran Bit dalam satu Byte Perhatikan bahwa satu byte juga berisi persis dua nibble (lihat gambar 1.2). Gambar 1.2: Dua Nibbles dalam satu Byte Word Sebuah word adalah kelompok 16 bit. Kita akan menomori bit dalam word mulai dari nol sampai dengan lima belas. Penomoran bit muncul di gambar 1.3. Gambar 1.3: Nomor Bit dalam Word Seperti byte, bit 0 adalah urutan bit terendah dan bit 15 adalah urutan bit tertinggi. Word Perhatikan bahwa satu word berisi persis dua byte. Bit 0 sampai 7 membentuk urutan byte terendah, bit 8 hingga 15 membentuk urutan byte tertinggi (lihat gambar 1.4). Gambar 1.4: Dua Bytes dalam Word Secara alami, satu word mungkin saja dipecah ke dalam empat nibble seperti diperlihatkan di dalam gambar 1.5. Word Gambar 1.5: Nibble dalam Sebuah Word Nibble nol adalah nibble urutan terendah dalam word dan nibble tiga adalah nible urutan tertinggi dari word. Dua nibble lain adalah “nibble satu” atau “nibble dua”. Word Dengan 16 bit, anda bisa merepresentasikan 216 (65,536) nilai yang berbeda. Ini bisa menjadi nilai dalam jangkauan 0..65,535 (atau, sebagai kasus biasanya, -32,768..+32,767) atau jenis data lain apapun tanpa lebih dari 65,536 nilai. Daftar Pustaka Digital Principles and Applications, LeachMalvino, McGraw-Hill Sistem Diugital konsep dan aplikasi, freddy kurniawan, ST. Elektronika Digiltal konsep dasar dan aplikasinya, Sumarna, GRAHA ILMU