Anda di halaman 1dari 9

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 8-2= 0.015625 8-3= 0.0019531 8-4= 0.0002441 8-5= 0.0000305 ..... Contoh : Cara 1 : 324 D = ...... O 324 40 320 40 4 0 5 ----> : 8 0 ----> bilangan 5 ----> sisa pembagian 81=8 82=64 83=512 84=4096 85=32768 .....

<------------324 D = 504 O Cara 2 : 324 D = 5 x 64 + 4 = 5 x 82 + 0 x 81 + 4 x 80 =504O 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 panjangnya 16, dengan pembagian 8 karakter untuk bilangan bulat dan 8 karakter untuk pecahannya. Simpan dengan nama PI3-01.

17

# 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 tigatiga. 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

Anda mungkin juga menyukai