About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Ide Membuat Program Konversi Bilangan Biner ke Desimal
PHP

Ide Membuat Program Konversi Bilangan Biner ke Desimal

Setelah beberapa waktu yang lalu saya memposting artikel tentang bagaimana membuat program konversi bilangan desimal ke biner, sekarang saya coba untuk membuat artikel kebalikannya.

Dalam judul ini sengaja saya kasih embel-embel ‘ide’ karena memang fokus dari artikel ini adalah menggambarkan idenya, dan bukan hanya sekedar menampilkan programnya saja.

OK.. misalkan diberikan sebuah bilangan biner atau bilangan berbasis dua 10110. Apakah Anda mengetahui konsep untuk mengkonversinya ke bentuk desimal atau bilangan berbasis 10? Anda mungkin telah mengetahui konsepnya ketika di perkuliahan. Bagi yang belum mengetahui, berikut ini adalah proses konversinya:

(10110)2 = 1×24 + 0x23 + 1×22 + 1×21 + 0x20
(10110)2 = 16 + 0 + 4 + 2 + 0 = 22

Dengan demikian hasil konversi bilangan biner 10110 ke desimal adalah 22.

Bila kita lihat dari contoh di atas, maka sebenarnya terdapat proses yang diulang-ulang dalam mengkonversi n digit bilangan biner yaitu menghitung bi x 2i, dengan i = n-1, n-2, n-3, …, 0 dan bi adalah digit biner ke-i. Selain menghitung bi x 2i, terdapat proses lain yang diulang-ulang yaitu menjumlahkan bi x 2i untuk setiap i.

Nah… berdasarkan konsep tersebut, OK… kita sudah mendapatkan idenya. Karena terdapat sesuatu yang diulang maka ketika kita akan membuat program untuk mengkonversinya, kita akan menggunakan looping yang dalam hal ini akan digunakan i sebagai counternya.

Namun… jika kita lihat konsep di atas, maka nilai i dimulai dari n-1, selanjutnya n-2 dst… sampai 0. Dengan kata lain, kita terlebih dahulu harus mengetahui nilai n nya yang dalam hal ini merupakan jumlah digit biner. Bagaimana cara mengetahuinya? Hmmm… Anda dapat dengan mudah mengetahuinya apabila bilangan binernya disajikan dalam bentuk tipe data string. Dengan demikian Anda bisa menggunakan function length() untuk mendapatkan panjang stringnya 🙂

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;

Mengapa demikian? Ya… karena ketika digit binernya 0, maka hasil jumlahannya tetap (tidak terpengaruh) sebagai akibat dari hasil perkalian 0 * pangkat(2, i) = 0.

OK.. demikian sedikit penjelasan mengenai bagaimana ide membuat program konversi dari biner ke desimal. Mudah-mudahan artikel ini bermanfaat bagi Anda dalam mencari ide membuat konversi bilangan basis yang lain ke desimal.


Article by Request

Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.

Silakan manfaatkan layanan Article by Request di blog ini.


Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply