Kamis, 29 Desember 2011

Cara Membuat Integer to Binary Konverter dan Sebaliknya di Delphi

Selamat siang agan-agan.Posting lagi juga ya akhirnya :D.Udah akhir taun nih , untuk itu mari kita tingkatkan pemahaman Delphi kita (hubungannya apa !? :hammer ).Pada postingan kali ini saya akan menyajikan tutorial Cara Membuat Integer to Binary Konverter dan Sebaliknya  di Delphi.Berawal dari sebuah pertanyaan di Grup Delphi di Facebook , hati saya tergugah untuk menulis posting ini.Sebagaimana kita tahu , bahwa komputer hanya mengenal bilangan biner , yang terdiri dari angka 0 dan 1.Apapun yang tampil sekarang ini di depan anda adalah hasil dari pengolahan bilangan
biner.Yuph , semuanya tersusun dari angka 0 dan 1.Udah ah , saya anggap agan-agan udah ngerti apa itu bilangan biner , kalo belum ngerti coba aja cari di mbah google.Mari lanjut ke topik.Dalam pembuatan program ini , kita membutuhkan 2 buah function.Yang pertama , ialah konverter dari biner ke integer , dan satu lagi dari integer ke biner.Okey , buka program anda sekarang.(untuk postingan kali ini , saya pake Delphi XE , tapi pake delphi 7 juga bisa kok).Tambahkan komponen berikut.


Component
Properties
Keterangan
2 Tbutton
Caption:Integer To Binary dan Binary To Integer

2 TEdit
Name:edNilaiInteger dan edNilaiBinary

2 TLabel
Name:lblNilaInteger dan lblNilaiBiner
 

Susun komponen tersebut sebagai berikut











Okay , nah saatnya koding !! Tambahkan kode berikut setelah {$R *.dfm}

function BinToInt(value:String):integer;
var i , nilaUkuran:Integer;
begin
  Result:=0;
  nilaUkuran:=Length(value);
  for i := nilaUkuran downto 1 do
    begin
      if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));
    end;
end;

Kode diatas merupakan konverter dari Binary Ke Integer.Bila kita liat , ada keyword yang cukup asing , yaitu shl.Apa fungsi shl itu !? Keyword shl berfungsi untuk melakukan pergeseran bitwise kiri Integer.Untuk mengetahui lebih dalam mengenai shl , silahkan cek kesini.Selanjutnya , kita akan membuat konverter dari Integer ke binary.Ketikan kode berikut setelah function di atas.

function IntToBin(value:Longint;Nilai:integer):String;
var i :Integer;
begin
  Result:='';
  for i := Nilai downto 0 do
    begin
      if value and (1 shl i) <> 0 then
        begin
          Result := Result+'1';
        end
      else
        begin
          Result:=Result+'0';
        end;
    end;
end;

Setelah kedua function tersebut selesai , saatnya memberikan kode untuk mengeksekusinya di Button.Double-click Button Integer To Binary dan ketikan kode berikut

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (edNilaiInteger.Text<>'') then
    begin
      lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)
    end;
end;

Kita akan mengconvert nilai integer menjadi 8 digit nilai biner.Lalu kenapa saya memasukan nilai 7 !? Karena bilangannya dimulai dari 0.Dan selanjutnya untuk Button Binary to Integer , ketikan kode berikut

procedure TForm1.Button2Click(Sender: TObject);
begin
  if edNilaiBinary.Text<> '' then
    begin
      lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));
    end;
end;

Untuk kode lengkapnya , sebagai berikut

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    edNilaiInteger: TEdit;
    Button1: TButton;
    lblNilaiBiner: TLabel;
    Button2: TButton;
    edNilaiBinary: TEdit;
    lblNilaInteger: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function BinToInt(value:String):integer;
var i , nilaUkuran:Integer;
begin
  Result:=0;
  nilaUkuran:=Length(value);
  for i := nilaUkuran downto 1 do
    begin
      if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));

    end;
end;

function IntToBin(value:Longint;Nilai:integer):String;
var i :Integer;
begin
  Result:='';
  for i := Nilai downto 0 do
    begin
      if value and (1 shl i) <> 0 then
        begin
          Result := Result+'1';
        end
      else
        begin
          Result:=Result+'0';
        end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (edNilaiInteger.Text<>'') then
    begin
      lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if edNilaiBinary.Text<> '' then
    begin
      lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));
    end;
end;

end.

Okey deh , jalankan program anda dan coba ketikan nilai integer pada edNilaiInteger.Contoh penampakannya











Untuk mengecek apakah valid bilangan biner tersebut , silahkan lihat disini Sekian untuk tutorial kali ini , semoga bermanfaat :)

Simak Juga Tutorial Lainnya:

6 komentar:

Falah Mulyana mengatakan...

Gan boleh minta template nya seperti agan ga'.......?????????????

kalau boleh tolong kirimkan donk ke email : falahmulyana@gmail.com

Komarudin Tasdik mengatakan...

Atas saran dari sahabat muhammad iqbal, saya berkunjung ke sini. Ternyata memang materinya sudah bagus. Saya izin belajar mas

cara mengobati asam urat secara tradisional mengatakan...

makasih banyak atas semua info dan saran nya ,,,,,

Me isn't mine mengatakan...

susah amat bang...di delphi juga sudah ada fungsi bawaannya...

AndroidApkApps.com mengatakan...

Keren nih ijin praktek sob

ahmad sidik mengatakan...

ass wr wb. saya noll dalam masalah ini. boleh kah saya belajar ke pada bapak.

Posting Komentar