1. Algoritma dan Pemrograman II
( Program Konversi Biner Ke Desimal)
Nama : Yogi Yaspranika
Nim : 09011181621121
Kelas : SK 3A
Dosen Pengampuh : Rendyansyah, S.Kom, MT.
Jurusan Sistem Komputer
Fakultas Ilmu Komputer
Universitas Sriwijaya
2017
2. 1. Teori
Bilangan Biner adalah bilangan yang berbasis dua,yaitu 0 dan 1.sedangkan
bilangan Desimal adalah bilangan berbasis 10,yaitu 0 sampai 9. Sebelum kita
menulis kode program saya akan membahas tentang bagaimana teori/ide sehingga
program itu bias dibuat.
Misalnya kita memiliki bilangan biner 110011012 dalam perkuliahan kita
sudah diajarkan bagaimana konsep untuk konversi bilangan Biner ke
Desimal,seperti :
27
26
25
24
23
22
21
20
1 1 0 0 1 1 0 1
110011012 = …..10
= ( 1 x 20
) + ( 0 x 21
) + ( 1 x 22
) + ( 1 x 23
) + ( 0 x 24
) + ( 0 x 25
) + ( 1 x 26
) + (
1 x 27
)
= 1 + 0 + 4 + 8 + 0 + 0 + 64 + 128
= 20510
Logika program;
desimal += (bin[j] - 48) * power(2, n);
n+1;
catatan: sebagai nilai pangkat.
2. Masalah
1) Bagaimana membuat program konversi biner ke decimal dengan bahasa C?
2) Bagaimana menggunakan larik dan fungsi dalam membuat program
konversi biner ke decimal dengan bahasa C?
3. Penyelesaian
a. Algoritma
1) Deklarasikan semua variabel yang kita butuhkan dalam program
2) ambil variabel bilangan biner sebagai masukan dari pengguna dengan tipe
karakter.
3) Cek input yang dimasukkan pengguna apakah karakter 0 dan 1, selain 0 dan
1 program tidak akan berjalan dengan baik.
3. 4) Kalikan bilangan biner dengan pangkat 2n
,n sesuai dengan posisi bilangan
tersebut(misalnya, 20
,21
,22
,…,2n
), untuk mendapakan pangkat, buat sebuah
fungsi pangkat atau bisa langsung dengan menggunakan library match.h.
5) Tampilkan hasil dalam bentuk decimal.
b. Kodingan
#include <stdio.h>
#include<stdlib.h>
#define Nmaks 8
typedef char array[Nmaks];
array bin;
int power(int x,int y);
int main()
{
int d=0, i=0,n=0, j, ch,pilih;
printf("Masukkan Bilangan Biner : ");
while ((ch=getchar()) != 'n') {
//periksa masukan 0 (ASCII 48) and 1 (ASCII 49)
if (ch == 48 || ch == 49 )
bin[i++] = ch;
}
printf("n---------------------------------n");
// BinToDec dan membalikkan element array untuk membaca biner
for (j = i-1; j >= 0; j-- ) {
d += (bin[j] - 48) * power(2, n);
n++; //posisi array
printf("%3c",bin[j]); //mencetak biner dengan spasi 3
}
printf("n---------------------------------n");
printf("Bilangan Desimal : %d",d);
printf("nnTekan sembarang untuk keluar ....");
getchar();
printf("TerimaKasih");
return 0;
}
int power(int x,int y)
{
int i=0,hasil=1;
for(;i<y;)