14

Click here to load reader

SISTIM BILANGAN OKTAL

Embed Size (px)

Citation preview

Page 1: SISTIM BILANGAN OKTAL

INSTITUT TEKNOLOGI INDONESIA

JURUSAN TEKNIK INFORMATIKA

PRAKTIKUM PENGANTAR INFORM ATIKA

DENGAN PEMROGRAMAN C++

MODUL 3

SISTIM BILANGAN OKTAL

Sasaran:

* Mempelajari cara merubah bilangan dari Oktal ke Desimal,atau sebaliknya

* Mempelajari cara merubah bilangan dari Oktal ke Biner, atau sebaliknya

I. Sistim Bilangan Oktal

Sistim bilangan Oktal menggunakan 8 simbol yaitu 0,1,2,3,4,5,6,7. Karena itu

basis dari sistim bilangan ini adalah 8. Sistim bilangan ini sama saja dengan

sistim bilangan desimal ataupun sistim bilangan Biner, hanya dibedakan oleh

basisnya saja. Nilai bilangan ditentukan oleh total hasil kali nilai absolut dan

nilai tempat(place value).

Contoh 1:

236 .24o = 2x82 +3x81 +6x80 + 2x8-1 + 4x8-2 D

= 2x64 +3x8 +6x1 + 2x1/8 + 4x1/64

= 128 + 24 + 6+20/64

= 158 5/16D

II. Konversi Bilangan Oktal

Bilangan Oktal dapat dirubah ke sistim bilangan Desimal, Biner dan

Hexadesimal. Begitu juga sebaliknya.

16

Page 2: SISTIM BILANGAN OKTAL

II. 1. Konversi dari Desimal ke Oktal

II.1.a. Untuk bilangan bulat tak negatif

Ada 2 cara yang dapat digunakan untuk mengkonversi bilangan bulat

desimal menjadi bilangan dalam sistim Oktal yaitu :

1. Dengan menggunakan tabel pangkat 8n

2. Pembagian berturut-turut dengan 8

Cara yang dilakukan dalam konversi ini sama dengan cara

pengkonversian desimal ke biner, hanya saja yang berbeda basis dari

bilangannya (lihat lagi modul 2).

Tabel 8n

8-1= 0.125 81=8

8-2= 0.015625 82=64

8-3= 0.0019531 83=512

8-4= 0.0002441 84=4096

8-5= 0.0000305 85=32768

..... .....

Contoh :

Cara 1 :

324 D = ...... O

324 40 5 ----> : 8

320 40 0 ----> bilangan

4 0 5 ----> sisa pembagian

<-------------

324 D = 504 O

Cara 2 :

324 D = 5 x 64 + 4

= 5 x 82 + 0 x 81 + 4 x 80

= 5 0 4 O

II.1.b. Untuk bagian pecahan

Lihat lagi cara merubah pecahan desimal ke Biner pada modul 2, yang dirubah

hanya basisnya saja dari 2 menjadi 8.

Modifikasi lagi program PI2-05 sehingga membaca sebuah bilangan real positif.

Konversikan ke Oktal dengan menggunakan array dimensi satu yang pan-

17

Page 3: SISTIM BILANGAN OKTAL

jangnya 16, dengan pembagian 8 karakter untuk bilangan bulat dan 8 karakter

untuk pecahannya. Simpan dengan nama PI3-01.

# include <iostream.h>

# include <conio.h>

# include <math.h>

void main()

{

clrscr();

int OC[8];

float des,D;

int i;

cout<<"Program konversi Desimal ke Octal "<<endl;

cout<< "Dengan metoda tabel 8 pangkat n "<<endl;

// Bagian masukan data (input)

cout<<"Masukan bilangan real anda=";

cin>>des;

while ((des<0) || (des> 4095.0))

{

cout<<” Bilangan anda diluar range 0 sampai 4095.0)”

<< ” Ulangi pemasukan data ”<<endl;

cin>>des;

}

D=des;

// Bagian Konversi desimal ke octal

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

{

OC[i]= des/pow(8,(3-i)) ;

des = des- OC[i]*pow(8,(3-i));

}

// Bagian Tampilan (Output)

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

cout<<"Bilangan Octal =";

18

Page 4: SISTIM BILANGAN OKTAL

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

{

cout<<OC[i]<<" ";

if(i==3) cout<<".";

}

cout<<endl;

getch();

}

II.2. Konversi dari Oktal ke Desimal.

Untuk merubah sebuah bilangan Oktal menjadi Bilangan Desimal dapat di

lihat dari contoh 1 yaitu dengan mengalikan setiap nilai absolute dengan

nilai posisi yang dimiliki bilangan dengan basis 8.

Edit dan pahami program berikut :

# include <iostream.h>

# include <conio.h>

# include <math.h>

void main()

{

clrscr();

//Program Konversi dari bilangan octal ke desimal

int OC[8],i;

long des=0;

//Bagian pemasukan data

cout<<"Masukan 8 bilangan OCTAL anda="<<endl;

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

{

19

Page 5: SISTIM BILANGAN OKTAL

cin>>OC[i];

//Pemeriksaan keabsahan data

while(OC[i]<0 || OC[i]>7)

{

cout<<"Bilangan anda bukan bilangan OCTAL, ”

<<” Ulangi pemasukan data "<<endl;

cin>>OC[i];

}

}

//Bagian proses konversi dari octal ke desimal

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

des=des+OC[i]*pow(8,7-i);

//Bagian Tampilan hasil

cout<<"Bilangan OCTAL anda =";

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

cout<<OC[i]<<" ";

cout<<endl;

cout<<"Setelah konversi dari OCTAL ke desimal maka "<<endl;

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

getch();

}

Simpan dengan nama PI3-02

Tugas 3-1 :

Modifikasi lagi program PI3-02 sehingga membaca sebuah bilangan pecahan

oktal. Konversikan ke Desimal dengan menggunakan array dimensi satu yang

panjangnya 16, dengan pembagian 8 karakter untuk bilangan bulat dan 8

karakter untuk pecahannya. Simpan dengan nama Pl3-03.

II.3. Konversi dari Biner ke Oktal

Dari sistim bilangan Biner dapat langsung dirubah ke sistim bilangan Oktal

dengan menggunakan cara pengelompokan tiga-tiga. Pengelompokan dimulai

dari titik pemisah pecahan :

20

Page 6: SISTIM BILANGAN OKTAL

contoh :(lihat tabel lampiran I)

1110101B = 1 110 101

1 6 5

= 165O

Program berikut membaca serangkaian data biner panjang 8 bit. Periksa

keabsahan data dan tolak bila data yang dimasukan bukan bilangan Biner.

Kemudian konversikan ke Oktal dengan menggunakan metoda kelompok tiga-

tiga. Ketik program berikut dengan benar kemudian kompilasi sampai

didapatkan hasil yang benar. Simpan dengan nama PI3-04.

//Program konversi Biner ke Oktal

//Dengan metode kelompok 3-3

# include <iostream.h>

# include <conio.h>

# include <math.h>

void main()

{

clrscr();

int BIN[8],i;

int OC[3]={0,0,0};

// Bagian Pemasukan data

cout<<"Masukan 8 bilangan biner anda="<<endl;

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

{

cin>>BIN[i];

while (BIN[i]<0 || BIN[i]>1)

{

cout<<” Bilangan anda bukan Biner, Ulangi !!”<<endl;

cin>>BIN[i];

}

//Bagian Tampilan bilangan biner yang dibaca

cout<<"Bilangan Biner anda =";

21

Page 7: SISTIM BILANGAN OKTAL

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

cout<<BIN[i]<<" ";

cout<<endl;

//Bagian konversi dengan kelompok tiga-tiga

int j=0,k=0;

for (i=7;i>=0;i--)

{

OC[j]=OC[j]+BIN[i]*pow(2,k);

k++;

if(k==3)

{

j++ ;

k=0;

}

}

// Bagian tampilan hasil konversi

cout<<"Setelah konversi dari Biner ke Pecahan Oktal "<<endl;

cout<<"Bilangan Oktal =";

for (i=2;i>=0;i--)

cout<<OC[i]<<" ";

getch();

}

Output dari program diatas :

II.4. Konversi dari Oktal ke Biner

22

Page 8: SISTIM BILANGAN OKTAL

Dari sistim bilangan Oktal juga dapat langsung dikonversikan ke Biner

dengan menggunakan kebalikan dari cara diatas. Setiap digit bilangan Oktal

dirubah menjadi biner 3 digit

Contoh : (lihat tabel lampiran I)

234O = 10 011 100B

2 3 4

Program berikut membaca serangkaian data oktal (panjangnya terserah anda).

Periksa keabsahan data dan tolak bila data yang dimasukan bukan bilangan

Oktal. Kemudian konversikan ke Biner dengan menggunakan metoda diatas.

Simpan dengan nama PI3-05

//Program Konversi dari bilangan octal ke desimal

# include <iostream.h>

# include <conio.h>

# include <math.h>

void main()

{

clrscr();

int OC[8],i,n,j,k=0;

int BN[24],B;

//Bagian pemasukan data

cout<<"Banyak digit Octal ="; cin>>n;

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

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

{

cin>>OC[i];

while(OC[i]<0 || OC[i]>7)

{

cout<<"Bilangan yang anda masukan bukan bilangan OCTAL”

<< ” Ulangi pemasukan data "<<endl;

cin>>OC[i];

}

}

23

Page 9: SISTIM BILANGAN OKTAL

cout<<"Bilangan OCTAL anda =";

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

cout<<OC[i]<<" ";

cout<<endl;

//Bagian proses konversi dari octal ke desimal

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

{

BN[k]=0;

for(j=0;j<3;j++)

{

B=OC[i]/pow(2,2-j);

OC[i]=OC[i]-B*pow(2,2-j);

BN[k]=B;

k++;

}

}

//Bagian Tampilan hasil

cout<<"Bilangan biner anda =";

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

cout<<BN[i]<<" ";

cout<<endl;

getch();

}

Jalankan program diatas dengan contoh sebagai tertera dibawah dan cocokkan

tampilannya.

24