Matakuliah Tahun Versi : T0483 / Bahasa Rakitan : 2005 : versi 1.0 / revisi 1.0 Pertemuan 2 Sistem Bilangan 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • menjelaskan format data dan sistem bilangan yang digunakan pada bahasa rakitan. 2 Outline Materi • • • • • • • • • • Ukuran data (bit, nibble, byte, word) Kode data (ASCII, BCD) Bilangan biner Bilangan oktal Bilangan desimal Bilangan heksadesimal Konversi sistem bilangan Komplement-1 dan komplement-2 Bilangan signed dan unsigned Carry, borrow, overflow 3 <<ISI>> FORMAT DATA • Bit (Binary digit) – Bagian terkecil dari data digital – Nilai : 0 atau 1 • Nibble – Ukuran : 4 bit – Jika digunakan untuk merepresentasikan bilangan Sign maka range nya mulai dari : -8 s/d 7, – Jika digunakan untuk merepresentasikan bilangan unsign maka range nya mulai dari : 0 s/d 15 4 <<ISI>> • Byte – Ukuran : 8 bit – Jika digunakan untuk merepresentasikan bilangan Sign maka range nya mulai dari : -128 s/d 127, – Jika digunakan untuk merepresentasikan bilangan unsign maka range nya mulai dari : 0 s/d 255 5 <<ISI>> • Word – Ukuran : 16-bit – Jika digunakan untuk merepresentasikan bilangan Sign maka range nya mulai dari : -32768 s/d 32767 – Jika digunakan untuk merepresentasikan bilangan unsign maka range nya mulai dari : 0 s/d 65535 6 <<ISI>> • ASCII – Ukuran : 8-bit – Mulai dari Bilangan ASCII 0 s/d 255 • BCD (Binary Coce Decimal) – Ukuran : 8- bit – unpacked BCD : Rangenya mulai 0 s/d 9 – packed BCD : Rangenya mulai 0 s/d 99 7 <<ISI>> Sistem Bilangan • Bilangan Biner – – – – Berbasis : 2 Lambang Bilangannya : 0, 1 Cara penulisannya : (1010)2 Dalam bahasa rakitan ditulis : 1010B • Bilangan Octal – – – – Berbasis : 8 Lambang Bilangannya : 0, 1, 2, 3, 4, 5, 6, 7 Cara penulisannya : (167)8 Dalam bahasa rakitan ditulis :167O 8 <<ISI>> • Bilangan Desimal – – – – Berbasis : 10 Lambang Bilangannya : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Cara penulisannya : (197)10 Dalam bahasa rakitan ditulis : 197D atau 197 • Bilangan Hexa-Decimal – Berbasis : 16 – Lambang Bilangannya : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F – Cara penulisannya : (9A7)16 – Dalam bahasa rakitan ditulis : 9A7H 9 <<ISI>> Konversi Sistem Bilangan • Konversi Bilangan Desimal ke Bilangan Biner – Contoh : (19)10 = ( ......... )2 – Caranya: 19 : 2 = 9 sisa 1 9 : 2 = 4 sisa 1 4 : 2 = 2 sisa 0 2 : 2 = 1 sisa 0 1 : 2 = 0 sisa 1 – Setelah hasil bagi sama dengan 0 => Selesai, dan hasil konversinya adalah sisanya dan dibaca dari bawah ke atas. – Jadi hasilnya : (19)10 = ( 10011 )2 10 <<ISI>> • Konversi Bilangan Biner ke Bilangan Desimal – Contoh : (10011)2 = ( ......... )10 – Caranya: 1x24 + 0x23 + 0x22 + 1x21 + 1x20 16 + 0 + 0 + 2 + 1 = 19 – Pangkat adalah nomor bit dihitung dari kanan dan dimulai dengan bit nomor 0. – Jadi hasilnya : (10011)2 = ( 19 )10 11 <<ISI>> • Konversi Bilangan Desimal ke Bilangan Octal – Contoh : (39)10 = ( ......... )8 – Caranya: 39 : 8 = 4 sisa 7 4 : 8 = 0 sisa 4 – Setelah hasil bagi sama dengan 0 => Selesai. Dan hasil konversinya adalah sisanya dan dibaca dari bawah ke atas. – Jadi hasilnya : (39)10 = ( 47 )8 12 <<ISI>> • Konversi Bilangan Desimal ke Bilangan Hexadecimal – Contoh : (49)10 = ( ......... )16 – Caranya: 49 : 16 = 3 sisa 1 3 : 16 = 0 sisa 3 – Setelah hasil bagi sama dengan 0 => Selesai. Dan hasil konversinya adalah sisanya dan dibaca dari bawah ke atas. – Jadi hasilnya : (49)10 = ( 31 )16 13 <<ISI>> • Konversi Bilangan Biner ke Bilangan Octal – Contoh : (10011)2 = ( ......... )8 – Caranya: kelompokkan bilangan biner menjadi tiga bit, tiga bit dari kanan (LSB), kemudian koversikan 3-bit tersebut ke bilangan Octal. – Hasil pengelompokkannya sbb: (10) dan (011) – (10)2 = (2)8 dan (011)2 = (3)8 – Jadi: (10011)2 = ( 23 )8 – Gunakan tabel berikut : 14 <<ISI>> 15 <<ISI>> • Konversi Bilangan Biner ke Bilangan Hexadecimal – Contoh : (1011101)2 = ( ......... )16 – Caranya: kelompokkan bilangan biner menjadi 4-bit, 4-bit dari kanan (LSB), kemudian koversikan 4-bit tersebut ke bilangan Hexadecimal – Hasil pengelompokkannya sbb: (101) dan (1101) – (101)2 = (5)16 dan (1101)2 = (D)16 – Jadi: (1011101)2 = ( 5D )16 – Gunakan tabel berikut : 16 <<ISI>> 17 <<ISI>> • Konversi Bilangan Octal ke Bilangan Desimal – Contoh : (176)8 = ( ......... )10 – Caranya: 1x82 + 7x81 + 6x80 = 64 + 56 + 6 = 126 – Pangkat adalah nomor bilangan dihitung dari kanan dan dimulai dengan nomor 0. – Jadi hasilnya : (176)8 = (126)10 18 <<ISI>> • Konversi Bilangan Octal ke Bilangan Biner – Contoh : (345)8 = ( ......... )2 – Caranya: Setiap digit bilangan octal dikonversi ke 3-bit bilangan biner, kemudian gabung bilangan biner tersebut. (3)8 = (011)2 (4)8 = (100)2 (5)8 = (101)2 – Jadi: (345)8 = ( 011 100 101)2 19 <<ISI>> • Konversi Bilangan Octal ke Bilangan Hexadecimal – Caranya: Rubah bilangan octal ke biner dulu, kemudian biner tersebut dirubah ke Hexadecimal. • Konversi Bilangan Hexadecimal ke Bilangan Desimal – Contoh : (1B6)16 = ( ......... )10 – Caranya: 1x162 + 11x161 + 6x160 = 256 + 176 + 6 = 438 – Pangkat adalah nomor bilangan dihitung dari kanan dan dimulai dengan nomor 0. – Jadi hasilnya : (1B6)16 = (438)10 20 <<ISI>> • Konversi Bilangan Hexadecimal ke Bilangan Biner – Contoh : (1F5)16 = ( ......... )2 – Caranya: Setiap digit bilangan Hexadecimal dikonversi ke 4-bit bilangan biner, kemudian gabung bilangan biner tersebut. (1)16 = (0001)2 (F)16 = (1111)2 (5)16 = (0101)2 – Jadi: (1F5)16 = ( 0001 1111 0101)2 21 <<ISI>> • Konversi Bilangan Hexadecimal ke Bilangan Octal – Caranya: Rubah bilangan Hexadecimal ke biner dulu, kemudian biner tersebut dirubah ke Octal. • Komplement-1 (one's Complement) – Setiap bit-0 dirubah menjadi bit-1, dan setiap bit-1 dirubah menjadi bit-0. – Contoh: Komplement-1 dari (01101101)2 adalah (10010010)2 22 <<ISI>> • Komplement-2 (two's Complement) – Adalah komplement-1 ditambah 1. – Contoh: Komplement-2 dari (01101101)2 adalah (10010011)2 • Bilangan Unsigned – Bilangan tak bertanda (selalu positif). – Semua bit digunakan untuk menghitung bobot bilangan. – Contoh : (11100011)2 = (227)10 23 <<ISI>> • Bilangan Signed – Bilangan bertanda (nilainya bisa negatif bisa positif). – MSB (most significan bit) menunjukkan tanda (sign). Bila MSB=1 berarti bilangan tsb, negatif dan bila MSB=0 berarti bilangan positif. – Contoh: (00110111)2 = (55)10 (11100011)2 = (-29)10 24 <<ISI>> • Carry – Terjadi saat operasi penjumlahan dimana hasilnya lebih besar dari range basis bilangan yang digunakan, sehingga ada nilai yang dikirim ke digit di sebelah kirinya yang bobotnya lebih besar • Borrow – Terjadi saat operasi pengurangan (a-b), dimana b > a sehingga harus meminjam dari digit di sebelah kirinya (yang berbobot lebih besar) 25 <<ISI>> • Overflow – Terjadi pada bilangan signed – Terjadi apabila: • Penjumlahan dua buah bilangan positif menghasilkan bilangan negatif • Penjumlahan dua buah bilangan negatif menghasilkan bilangan positif • Bilangan negatif dikurangi bil. postip menghasilkan bil. postip • Bilangan positip dikurangi bilangan negatif menghasilkan negatif 26 <<ISI>> • Contoh : Penjumlahan bilangan sign 4-bit (0101)2 + (0100)2 = (1001)2 Overflow karena dua buah bilangan positif dijumlahkan menghasilkan bilangan negatif. • Operasi Bilangan – Penjumlahan – Pengurangan – Perkalian – Pembagian 27 << CLOSING>> • Tugas / Latihan 28