11

Click here to load reader

Sistim Bilangan Hexadecimal

Embed Size (px)

Citation preview

Page 1: Sistim Bilangan Hexadecimal

INSTITUT TEKNOLOGI INDONESIA

JURUSAN TEKNIK INFORMATIKA

PRAKTIKUM PENGANTAR INFORMATIKA

DENGAN PEMROGRAMAN C++

MODUL 4

SISTIM BILANGAN HEXADECIMAL

Sasaran:

* Mempelajari sistim bilangan Hexadecimal

* Mempelajari cara merubah bilangan desimal ke Hexadecimal, atau

sebaliknya

* Mempelajari cara merubah bilangan Hexadecimal ke Biner, atau

sebaliknya

I. Sistim Bilangan Hexadecimal

Sistim bilangan Hexadecimal menggunakan 16 simbol yaitu

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,dimana nilai numerik dari A = 10 , B = 11,

C=12, D=13, E=14 dan F=15(lihat tabel lampiran I). Karena itu basis dari

sistim bilangan ini adalah 16. Sistim bilangan ini sama saja dengan sistim

bilangan Desimal, Biner, dan Oktal, hanya dibedakan oleh basisnya saja. Nilai

bilangan ditentukan oleh total hasil kali nilai absolut dan nilai tempat(place

value).

Contoh 1:

21A.15H = 2x162 +1x161 +Ax160 + 1x16-1 + 5x16-2

= 2x256 +1x16 +10x1 + 2x1/16 + 5x1/256

= 512 + 16 + 10+37/256

= 538 37/256D

25

Page 2: Sistim Bilangan Hexadecimal

II. Konversi Bilangan Hexadecimal

Bilangan Hexadecimal dapat dirubah ke sistim bilangan Desimal, Biner dan

Oktal. Begitu juga sebaliknya.

II.1. Konversi dari Hexadecimal ke Desimal

Algoritma yang digunakan dapat dilihat pada contoh 1. Setiap nilai absolut

dikalikan dengan nilai posisi lalu dijumlahkan. Yang harus diperhatikan dalam

kasus ini adalah simbol yang digunakan bukan hanya numerik saja tetapi

ada simbol yang berbentuk karakter. Operasi aritmatika hanya bisa dilakukan

terhadap bilangan bila jenis datanya numerik.

Apabila bilangan yang dioperasikan A sampai F maka perlu ada konversi

dari karakter ke numerik, sebaliknya bila hasil pengolahan antara 10 sampai

15 juga harus ada konversi dari numerik ke karakter.

Perhatikan dan pahami program berikut :

//Program Konversi dari bilangan hexadesimal ke desimal

# include <iostream.h>

# include <conio.h>

# include <math.h>

void main()

{

clrscr();

char H[4];

int heksa[4],i;

long des=0;

//Bagian pemasukan data

cout<<"Masukan 4 bilangan HEXA anda="<<endl;

for(i=0;i<4;i++)

{

cin>>H[i];

26

Page 3: Sistim Bilangan Hexadecimal

switch (H[i])

{

case 'A':

heksa[i]=10;

break;

case 'B' :

heksa[i]=11;

break;

case 'C':

heksa[i]=12;

break;

case 'D':

heksa[i]=13;

break;

case 'E' :

heksa[i]=14;

break;

case 'F':

heksa[i]=15;

break;

case '0':

heksa[i]=0;

break;

case '1' :

heksa[i]=1;

break;

case '2':

heksa[i]=2;

break;

case '3':

heksa[i]=3;

break;

case '4' :

heksa[i]=4;

break;

27

Page 4: Sistim Bilangan Hexadecimal

case '5':

heksa[i]=5;

break;

case '6':

heksa[i]=6;

break;

case '7' :

heksa[i]=7;

break;

case '8':

heksa[i]=8;

break;

case '9':

heksa[i]=9;

break;

default :

{

cout<<"Bilangan anda bukan Hexadesimal”

<<”, ulangi pemasukan data "<<endl;

cin>>H[i];

}

}

}

cout<<endl;

//Bagian proses konversi dari hexadesimal ke desimal

for(i=0;i<4;i++)

des=des+heksa[i]*pow(16,3-i);

//Bagian Tampilan hasil

cout<<"Bilangan Hexadesimal anda =";

for(i=0;i<4;i++)

cout<<H[i]<<" ";

cout<<endl;

cout<<"Bilangan desimal ="<<des<<endl;

getch();

}

28

Page 5: Sistim Bilangan Hexadecimal

Simpan program tersebut dengan nama PI4-01

Hasil dari program sebagai berikut :

II.2. Konversi dari Desimal ke Hexadecimal

II.2.a. Untuk bilangan bulat tak negatif

Ada 2 cara yang dapat digunakan untuk mengkonversi bilangan bulat

desimal menjadi bilangan dalam sistim Hexadecimal yaitu :

1. Dengan menggunakan tabel pangkat 16n

2. Pembagian berturut-turut dengan 16

Cara yang dilakukan dalam konversi ini sama dengan cara pengkonversian

desimal ke biner, hanya saja yang berbeda basis dari bilangannya (lihat lagi

modul 2).

II. 2.b. Untuk bilangan pecahan positif

1. Dengan menggunakan tabel pangkat 16-n

2. Perkalian berturut-turut dengan 16

Buatlah program untuk membaca sebuah bilangan bulat positif. Konversikan ke

Hexadecimal dengan menggunakan array dimensi satu yang panjangnya 4 (ingat

bilangan integer hanya bisa menampung data maksimum 32766). Simpan

dengan nama PI4-02.

# include <iostream.h>

# include <conio.h>

# include <math.h>

# include <ctype.h>

# include <stdlib.h>

29

Page 6: Sistim Bilangan Hexadecimal

void main()

{

clrscr();

//Program Konversi dari desimal ke bilangan hexadesimal

char HX[4];

int heksa[4];

int i, des,D;

//Bagian pemasukan data

cout<<"Masukan bilangan desimal anda="<<endl;

cin>>des;

while(des<0 || des> 32766)

{

cout<<"Data diluar range bilangan integer, "

<<"Ulangi pemasukan data"<<endl;

cin>>des;

}

D=des;

for(i=0;i<4;i++)

{

heksa[i]=des/pow(16,(3-i));

des=des-heksa[i]*pow(16,(3-i));

}

cout<<"Bilangan HEXADESIMAL anda =";

for(i=0;i<4;i++)

{

switch (heksa[i])

{

case 10 :

HX[i]='A';

break;

case 11:

HX[i]='B';

break;

case 12:

HX[i]='C';

30

Page 7: Sistim Bilangan Hexadecimal

break;

case 13:

HX[i]='D';

break;

case 14 :

HX[i]='E';

break;

case 15 :

HX[i]='F';

break;

case 0 :

HX[i]='0';

break;

case 1 :

HX[i]='1';

break;

case 2:

HX[i]='2';

break;

case 3:

HX[i]='3';

break;

case 4 :

HX[i]='4';

break;

case 5:

HX[i]='5';

break;

case 6:

HX[i]='6';

break;

case 7 :

HX[i]='7';

break;

case 8:

31

Page 8: Sistim Bilangan Hexadecimal

HX[i]='8';

break;

case 9:

HX[i]='9';

break;

}

}

cout<<endl;

//Bagian proses konversi dari desimal ke hexadesimal

cout<<"Bilangan desimal ="<<D<<endl;

cout<<"Bilangan Hexedesimal=";

for(i=0;i<4;i++)

cout<<HX[i];" ";

getch();

}

II.3. Konversi dari Biner ke Hexadecimal

Dari sistim bilangan Biner dapat langsung dirubah ke sistim bilangan

Hexadecimal dengan menggunakan cara pengelompokan empat-empat.

Pengelompokan dimulai dari titik pemisah pecahan :

contoh: ( Lihat tabel lampiran I)

1110101.10111B = 0111 0101. 1011 1000

7 5 B 8

= 75.B8H

Tugas 4-2:

Buatlah program untuk membaca serangkaian data biner (panjangnya

terserah anda). Periksa keabsahan data dan tolak bila datanya bukan Biner.

Kemudian konversikan ke Hexadecimal dengan menggunakan metoda

diatas (lihat program PI3-04). Simpan dengan nama PI4-03.

II.4. Konversi dan Hexadecimal ke Biner

32

Page 9: Sistim Bilangan Hexadecimal

Dari sistim bilangan Hexadecimal juga dapat langsung dikonversikan ke

Biner dengan menggunakan kebalikan dari cara diatas. Setiap digit bilangan

Hexadecimal dirubah menjadi biner 4 digit.

Contoh :

234.23H = 0010 0011 0100. 0100 0011B

2 3 4 4 3

Tugas 4-3

Buatlah program untuk membaca serangkaian data Hexadecimal

(panjangnya terserah anda). Kemudian konversikan ke Biner dengan

menggunakan metoda diatas( Lihat program PI3-05). Simpan dengan nama

PI4-04

33