Selasa, 27 Oktober 2009

KONVERSI DESIMAL KE BINER dan sebaliknya

==========================
KONVERSI DESIMAL KE BINER
==========================

// bahasa C

#include
#include

int main()
{
int angka,i;
char strx[10];
printf("Masukan nilai Desimal = ");
scanf("%d", &angka);
i=0;
while(angka)
{
if(angka & 1)
{
strx[i] = '1';
}
else
{
strx[i] = '0';
}
i+=1;
angka >>= 1;
}
for(i=6;i>=0;i--)
{
printf("%c",strx[i]);
}
printf("\n");
return 0;
}

======
ATAU
======

//program konversi bilangan biner
//file name knvrs_bil.cpp
#include
#include
#include"biner.h"
#include"oktal.h"
void main()
{
int s, c, y, a;
for (s=0;s{
cout<<"Silahkan masukkan bilangan bulat positif = ";cin>>c;
cout<cout<<"Bilangan Oktal dari ("<cout<>a;
if (a==1) clrscr();
else y=1;
}
}


Algoritma :
a.inisialisasi biner[ ], des, i
b.inputkan bilangan decimal
c.Proses looping :
1.untuk i=7 sampai dengan 0, i=i-1
2.biner [i]= des %2 (sisa pembagian dari des dibagi 2 di assign ke variable biner [i] )
3.des=des / 2
4.Apakah i =0 ? jika tidak, kembali ke proses c1
d.Proses menampilkan hasil konversi :
1.untuk i=0 sampai dengan 7, i=i+1
2.Print biner
3.Apakah I =7 ? jika tidak, kembali ke proses d1
e.Program selesai

=========================
KONVERSI BINER KE DESIMAL
=========================
// bahasa C
#include
#include

short int bin[8];
void caribiner(short int x)
{
short int j, hasil, i;

i = 8;
if (x<0)
{
printf("Maaf, bilangan desimal negatif tidak dapat dikonversi dengan program ini. \n");
}

else
{

while (x>0)
{
hasil=x%2; //mencari nilai sisa pembagian x dengan 2
x=(x-hasil)/2; //nilai x dikurangi dengan variabel ‘hasil’
i--; //decrement nilai i
bin[i]=hasil; }

printf("Nilai biner dari x = ");

for (j=0; j<=7; j++)
{
printf("%d", bin[j]);
if ((j+1) % 4 == 0)
printf(" ");
}
}

printf("\n");

}


Algoritma :

a.inisialisasi biner[],i,hasil, dan desimal=0

b.inputkan bilangan biner

c.Proses loping :

1.untuk i=0 sampai dengan length (biner), i=i+1

2.keluarkan bilangan biner ke i lalu kalikan dengan 2i, masukkan ke hasil, dinyatakan dengan hasil.push(biner[i]* 2i

3.desimal+=hasil.pop

4.Print desimal

5.Apakah i = length (biner) ? jika tidak, Kembali ke proses c1

6.Program selesai.


OK… we’ve got it… now let’s get into PASCAL program..

program konversiBiner2Dec;
var bilBiner : string;

{ function untuk menghitung a pangkat b}

function pangkat(a, b : integer) : integer;
var i, hasil : integer;
begin
hasil := 1;
for i:=1 to b do
begin
hasil := hasil * a;
end;
pangkat := hasil;
end;

{ function untuk menghitung konversi biner ke desimal }

function bin2Dec(biner : string) : integer;
var n, sum, i : integer;
begin
n := length(biner);
sum := 0;
for i:= n-1 downto 0 do
begin
if (biner[n-i] = '0') then sum := sum + 0 * pangkat(2, i)
else if (biner[n-i] = '1') then sum := sum + 1 * pangkat(2, i);
end;
bin2Dec := sum;
end;

begin
bilBiner := '10110';
write('Bilangan desimalnya : ', bin2Dec(bilBiner));
end.

Catatan:
Anda juga dapat mengubah blok for dalam function bin2Dec() menjadi seperti ini

for i:= n-1 downto 0 do
begin
if (biner[n-i] = '0') then sum := sum;
else if (biner[n-i] = '1') then sum := sum + pangkat(2, i);
end;



========================= sekian ============================