Listing Program Untuk Mengkonversi Bilangan Desimal Ke Bilangan Biner PHP

Di artikel sebelumnya saya sudah membahas Bagaimana Cara Konversi Bilangan Desimal Ke Biner, Heksadesimal Dan Oktal secara manual. Meskipun kita sudah paham bagaimana cara menghitung manualnya tetapi terkadang kita ada sedikit ketidak yakinan dengan hasil akhir coret-coretan kita. Nah untuk menjawab ketidak yakinan tersebut maka tidak ada salahnya kita mencoba menerapkan listing program konversi bilangan desimal ke bilangan biner ini. Silahkan simpan listing kode di bawah ini dengan nama hitungan.php

<?php
$desimal = 222;
$original = 222;
$biner = '';

while($desimal>0){
    if ($desimal%2 == 0){
  $desimal /= 2;
  $biner .= 0;
  }
 else {
  $desimal = ($desimal/2)-0.5;
  $biner .= 1;
  }
  $hasil_akhir = strrev($biner);
  }
 echo "<h2>Hasil konversi bilangan desimal $original adalah $hasil_akhir biner</h2>"; 
?>
Ganti variabel $desimal dan $original dengan angka desimal yang ingin anda konversi.

Saya akan menjelaskannya sedikit dari cara kerja listing kode tersebut diatas.

Pertama saya membuat sebuah variabel $desimal dimana variabel ini yang nantinya akan dieksekusi sampai ke tahap berikutnya. Lalu saya membuat lagi sebuah variabel $original dimana variabel ini dibuat hanya untuk mencetak ke layar browser saja tanpa mengikuti proses-proses yang lain. Di bawah variabel $original saya membuat lagi sebuah variabel $biner yang nilainya sebelum dieksekusi adalah NULL.

Proses-proses yang dilakukan didalam listing program di atas adalah sbb:

While ($desimal > 0) {
Ini adalah sebuah fungsi perulangan, kode ini akan melakukan tugasnya jika persyaratan $desimal di awal tadi nilainya terpenuhi (yaitu jika lebih besar dari 0). Jika terpenuhi maka proses selanjutnya akan berjalan yaitu akan mengeksekusi percabangan logika if else

if ($desimal%2 == 0) {
Jika variabel $desimal (di awal tadi) dibagi dua dan sisa dari hasil pembagiannya sama dengan 0 maka akan melakukan proses perulangan $desimal /= 2 dan $biner .= 0 . Tapi jikalau sisa dari hasil pembagiannya tidak sama dengan 0 maka akan melakukan proses perulangan yang adal di blok else

$desimal /= 2;
Simak baik-baik posisi kode tersebut. Kode tersebut terletak diantara blok kode perulangan while dan percabangan logika if. Kode tersebut akan di eksekusi dan dijalankan berulang-ulang jika persyaratan $desimal%2 == 0 (baca: sisa dari hasil pembagian antara $desimal dibagi 2 adalah sama dengan 0) terpenuhi.

$biner .= 0;
Kode ini juga sama yaitu terletak diantara diantara blok kode perulangan while dan percabangan logika if. Kode tersebut juga akan dieksekusi dan dijalankan berulang-ulang jika persyartan $desimal%2 == 0 terpenuhi. Untuk menambah jelas perhitungan kira-kira seperti inilah rumus matematika sewaktu kita SD dulu


x /= y ---> x = x/y
x .= y ---> x = x.y
x *= y ---> x = x*y
x += y ---> x = x+y

Untuk memudahkan ilustrasi silahkan lihat contoh cara penggunaan operator .= berikut ini !!

contoh 1
$a = 1;
$b = 2;
$c = 3;

echo $a .= $b .= $c;  #jika dijalankan maka akan mencetak angka 123

contoh 2
$a = 1;
$a .= 0;
$a .= 1;
$a .= 1;

echo $a;    #jika dijalankan maka akan mencetak angka 1011

untuk kode yang berada di blok else yaitu kode $desimal = ($desimal/2)-0.5 dan kode $biner .= 1 saya rasa tidak terlalu sulit untuk dipahami karena kode tersebut hampir sama persis perhitungannya dengan kode yang berada di blok if

$hasil_akhir = strrev($biner);
Fungsi strrev() ini adalah untuk membaca suatu karakter dimulai dari belakang ke depan. Nilai yang dihasilkan dari perulangan while diatas adalah 01111011 maka setelah ditambahkan fungsi strrev() maka nilainya menjadi 11011110

Artikel ini dikunjungi dengan kata kunci :

Cara mudah untuk mengkonversi bilangan desimal ke biner di PHP, Bagaimana cara merubah bilangan desimal ke biner PHP, cara mengkonversi bilangan desimal ke bilangan biner di dalam PHP, merubah bilangan desimal ke biner sederhana.

0 komentar:

Post a Comment

Silahkan berkomentar yang sopan, komentar yang memuat konten pornografi akan saya hapus dan komentar yang tidak berhubungan dengan artikel tidak akan saya terbitkan.