#include
#include
#include
int main()
{
int dec=0,flag=0;
int bin, bit;
double exp=0.0;
lagi:
clrscr();
printf("Masukkan bilangan biner :");
scanf("%d",& bin);
while (bin)
{
bit=bin%10;
if (bit!=0 && bit!=1)
{
flag=1;
}
bin=bin/10;
dec=dec+bit*pow(2,exp);
exp++;
}
if(flag==1)
{
printf("\n Bukan Angka biner ! \n");
printf("Silahkan ulangi lagi ! \n");
getch();
flag=0;
exp=0.0;
dec=0;
goto lagi;
}
else
{
printf("\n number ini Desimal : %d \n",dec);
}
getch();
return (0);
}
1. Dalam bahasa C kita banyak menggunakan identifier – identifier . identifier tersebut telah di kelompokkkan kedalam masing – masing library routine. Pada program kali ini kita menggunakan 3 buah library routine, yaitu :
- stdio.h
- math.h
- conio.h
untuk mendeklarasikan library routine kita harus menuliskan #include
2. Kita menuliskan induk dari suatu program yang akan kita gunakan, yaitu dengan menuliskan ‘ main() ‘ . barulah kita mulai suatu blok program yang akan kita buat dengan meuliskan tanda ‘ { ‘
3. Mendeklarasikan variable – variable yang akan kita gunakan. Dalam program diatas kita mendeklarasikan 2 type variable , yaitu variabel dengan nilai tetap / constanta dan variable dengan nilai dapat berubah – ubah / dinamis..
- Kita mendeklarasikan var ‘ dec ‘ dan juga ‘ flag ‘ dengan nilai tetap yaitu sama dengan nol. Dengan memberikan type data integer pada kedua variable tetap ini.
- Kita mendeklarasikan var ‘ bin ‘ dan ‘ bit ‘ dengan type data integer.
- Kita mendeklarasikan var ‘ exp ‘ dengan type data double.
4. Kita akan menggunakan suatu procedure. Dalam program ini kita menggunakan prosedur dengan nama ‘lagi’ .
5. Crlscr adalh perintah untuk membersihkan tampilan layar. Sehingga setiap kali kita memulai untuk mengulang menjalankan program yang kita buat , maka tampilan pada layar akan selalu seperti awal kita membukanya ( layar kosong ).
6. Inilah mengapa,pada awal program kita memanggil library routine dari ‘stdio’ . karena pada library routine ini terdapat identifier yang kita butuhkan, yaitu ‘printf’ dan ‘scanf’.
7. Kita akan memunculkan tulisan ‘ masukkan bilangan binary : ‘ pada progam yang akan kita buat ini. Karena itu kita menggunakan perintah ‘printf’.
8. Karena kita ingin mendapatkan nilai input-an dari keyboard , maka kita menggunakan perintah scanf. %d adalah sebagai pernanda format untuk bilangan yang kita masukkan, yaitu sebagai angka integer.
9. Karena kita ingin memasukkan nilai input-an tadi kedalam variable bin, maka kita harus menuliskan ‘& bin’ , arti dari tanda ‘&’ adalah sebagai penanda pointer , dengan demikian nilia yang kita inputkan tadi akan masuk kedalam var ‘bin’ .
10. Lalu kita akan melakukan perulangan pada nilai dari var ‘bin’ tersebut, dengan menggunakan statement ‘while’. Ini dilakukan agar angka binary yang kita masukkan,akan terus diproses sampai kita dapat mengkonversikannya kedalam nilai decimal yang kita cari.
11. Kita akan menyimpan sisa hasil pembagian kedalam variable bit . dengan menuliskan ‘bit = bin%10’ . kita membagi nilai bin dengan 10, karena 10 merupakan basis dari angka decimal. Sehingga perhitungan yang kita lakukan akan tepat. Jika kita ingin mengkonversinya kedalam octal ataupun hexadecimal,kita hanya perlu mengubah nilai 10 ke nilai basis dari angka hasil konversi yang kita inginkan.
12. if (bit!=0 && bit!=1)
Pada proses kali ini, kita akan melukakan pemeriksaan terhadap nilai yang kita masukkan. Karena bilangan binary hanya terdiri dari dari angka 1 dan 0, maka berapapun jumlah nilai yang kita masukkan hanya akan menyisakan angka 0 atau 1. Jika sisa yang dihasilkan bukan 0 atau 1 , maka nilai yang kita input bukanlah bilangan binary. Karena itu kita menggunakan operand ‘ &&’ yang artinya untuk mendapatkan nilai benar, nilai dari kondisi 1 dan 2 harus bernilai benar juga.
13. Jika nilai yang kita inputkan tadi bukanlah bilangan binary,maka var ‘flag’ kita buat nilainya menjadi 1. ( kondisi ini dapat kita buat sesuka hati ,karena hanya sebagai penanda untuk nantinya ).
14. Jika nilai yang kita masukkan tidak memenuhi kondisi dari percabangan if ( artinya bilangan yang kita masukkan adalah benar merupakan bilangan binary ) maka nilai dari var ‘bin’ akan dibagi dengan 10, namun yang di simpan adalah nilai hasil baginya , bukan sisanya.
15. Statement ini kita gunakan untuk menyimpan nilai dari konversi ( tiap putaran,sampai perulangan habis ) kedalam var dec. dengan nilai, sisa dari perhitungan ( nilai dari var ‘bit’) dikalikan dengan 2 pangkat nilai dari var ‘exp’. Var exp adalah sebagai penanda berlangsungnya perulangan.tiap satu kali perulangan nilainya akan bertambah 1. Dengan begitu program yang kita buat sesuai dengan rumus untuk pengkonversian nilai – nilai bilangan.
16. Selanjutnya adalah untuk melakukan penginputan ulang. jika nilai yang kita masukkan adalah bukan bilangan binary. Kita menggunakan kondisi dari var ‘flag’ yang tadi telah kita tentukan , yaitu 1. Jika nilai dari var ‘flag’==1 maka statement kondisi ini yang akan di jalankan.
17. Maka akan mencetak tulisan “bukan angka binary” lalu pointer akan pindah kebawahnya dan menulis kata ke dua, yaitu “masukkan angka lagi “.
18. Lalu kita menggukan identifier getch() yang berasal dari library yang telah kita deklarasikan tadi.
19. Karena kita akan melakukan perhitungan ulang, maka kita akan membuat nilai dari semua variable yang kita gunakan kembali ke 0 lagi. Lalu kita kembali ke procedure awal yaitu ‘lagi’.
20. Namun jika kondisi ini tidak terpenuhi ( nilai dari var ‘flag’ != 1) ( artinya nilai binary yang kita masukkan adalah benar) maka kita tinggal menuliskan hasil dari konveri tersebut. Dengan tampilan “ nilai dalam decimal : “ (posisi pointer panda kebawah 1baris) lalu nilai dari var dec ( nilai hasil dari proses pengkonversian yang kita buat diatas..
No comments:
Post a Comment