1 Maret 2015

KONVERSI BILANGAN PECAHAN DESIMAL KE BINER C++

      Bilangan pecahan adalah bilangan non bulat dan meimiliki rasio nilai koma, contoh: 0,1 (dibaca nol koma satu). diperkuliahan awal mata kuliah Pemrogaman Terstruktur saya mendapat tugas konversi ini. saya ingin share logika saya untuk teman-teman pembaca. kodenya silahkan saja di copy , namun jangan lupa dipahami juga ya logikanya yaahh :).

berikut Source codenya:
 

#include <conio.h>
#include <iostream.h>

void main()
{

float k;

cout<<"Muh. Misbahul Umam(c)2013 @ STIKOM Surabaya" <<endl;
cout<<"-------------------------------------------------"<<endl ;
cout<<"PROGRAM HANYA MENGHITUNG PECAHAN LBH KECIL dari 1" <<endl <<endl;

cout<<"Masukkan Sebuah NIlai<1 (Basis-10): " ;

cin>>k;

cout<<endl <<endl;
cout<<"Bilangan Basis-2 (Biner) adlh ";
cout<<"0," ;


k=2*k;
do{
if(int(k)==1)
{cout<<int(k);
k=k-1; }
else
cout<<int(k);
k=k*2;

}
while(k!=1) ;
cout<<k;

getch();
}



        ASUMSI-ASUMSI :
  1.  Pahami betul   konsep konversi pecahan desimal ke biner, seperti contoh  dibawah ini:
            misal kita akan mengubah 0,625  menjadi biner

Gambar 1. contoh konversi pecahan desiaml ke Biner.
2. Program ini hanya untuk konversi pecahan desimal kurang dari 1.

     LOGIKA PROGRAM :
  • #include <conio.h>    adalah header library dari : cout dan cin
  • #include <iostream.h>     adalah header library dari: getch(),   
  •  menggunakan tipe data float karenaa kita memasukkan angka non bulat / pecahan.
  • cin berfungsi untuk menginputkan nilai ke variabel.
  • cout berfungsi untuk mencetak nilai variabel ke layar.
  •  pertama-tama sebelum perulangan dilakukan dulu  k=2*k  
  • looping dowhile digunakan karena program tidak tahu akan melakukan looping berapa kali. looping dilakukan sesuai angka yang di inputkan user.
  • pada percabangan if tipe data float dirubah menjadi integer karena kita ingin mengambil angka didepan koma. secara prisip tipe data integer akan membuang angka di belakang koma.
  • jika hasil integerisasi bernilai 1 maka variabel k(float) dikurangi dengan 1, namun jika tidak cukup dikalikan lagi k(float) dengan 2
  • perulangan berhenti bila nilai k tidak sama dengan 1.
  • getch disini berfungsi untuk menahan layar sampai ada penekanan tombol apapun itu agar kita bisa melihat ouputan dari program.
      Program diatas adalah sebagian kecil dari ribuan logika yang bisa digunakan. untuk lebih memahami dan ahli di pemrogaman kita harus sering-sering mencoba dan praktek.

0.625 x 2 = 1.25, bagian bulat = 1 (MSB), sisa = 0.25 0.25 x 2 = 0.5, bagian bulat = 0, sisa = 0.5 0.5 x 2 = 1.0, bagian bulat = 1 (LSB), tanpa sisa Sehingga, 0.62510 = 0.1012

Read more at: http://elektronika-dasar.web.id/teori-elektronika/sistem-bilangan-pada-elektronika-digital/
Copyright © Elektronika Dasar

Tidak ada komentar:

Posting Komentar