Click here to load reader
Upload
irwin-andriyanto
View
37
Download
4
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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