Download

12/15/2010

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}


  1. function BinToInt(value:String):integer;  
  2. var i , nilaUkuran:Integer;  
  3. begin  
  4.   Result:=0;  
  5.   nilaUkuran:=Length(value);  
  6.   for i := nilaUkuran downto 1 do  
  7.     begin  
  8.       if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));  
  9.     end;  
  10. 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.


  1. function IntToBin(value:Longint;Nilai:integer):String;  
  2. var i :Integer;  
  3. begin  
  4.   Result:='';  
  5.   for i := Nilai downto 0 do  
  6.     begin  
  7.       if value and (1 shl i) <> 0 then  
  8.         begin  
  9.           Result := Result+'1';  
  10.         end  
  11.       else  
  12.         begin  
  13.           Result:=Result+'0';  
  14.         end;  
  15.     end;  
  16. end;  

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


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. begin  
  3.   if (edNilaiInteger.Text<>'') then  
  4.     begin  
  5.       lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)  
  6.     end;  
  7. 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

  1. procedure TForm1.Button2Click(Sender: TObject);  
  2. begin  
  3.   if edNilaiBinary.Text<> '' then  
  4.     begin  
  5.       lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));  
  6.     end;  
  7. end;  

Untuk kode lengkapnya , sebagai berikut


  1. unit Unit1;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  7.   Dialogs, StdCtrls;  
  8.   
  9. type  
  10.   TForm1 = class(TForm)  
  11.     edNilaiInteger: TEdit;  
  12.     Button1: TButton;  
  13.     lblNilaiBiner: TLabel;  
  14.     Button2: TButton;  
  15.     edNilaiBinary: TEdit;  
  16.     lblNilaInteger: TLabel;  
  17.     procedure Button1Click(Sender: TObject);  
  18.     procedure Button2Click(Sender: TObject);  
  19.   private  
  20.     { Private declarations }  
  21.   public  
  22.     { Public declarations }  
  23.   end;  
  24.   
  25. var  
  26.   Form1: TForm1;  
  27.   
  28. implementation  
  29.   
  30. {$R *.dfm}  
  31.   
  32. function BinToInt(value:String):integer;  
  33. var i , nilaUkuran:Integer;  
  34. begin  
  35.   Result:=0;  
  36.   nilaUkuran:=Length(value);  
  37.   for i := nilaUkuran downto 1 do  
  38.     begin  
  39.       if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));  
  40.   
  41.     end;  
  42. end;  
  43.   
  44. function IntToBin(value:Longint;Nilai:integer):String;  
  45. var i :Integer;  
  46. begin  
  47.   Result:='';  
  48.   for i := Nilai downto 0 do  
  49.     begin  
  50.       if value and (1 shl i) <> 0 then  
  51.         begin  
  52.           Result := Result+'1';  
  53.         end  
  54.       else  
  55.         begin  
  56.           Result:=Result+'0';  
  57.         end;  
  58.     end;  
  59. end;  
  60.   
  61. procedure TForm1.Button1Click(Sender: TObject);  
  62. begin  
  63.   if (edNilaiInteger.Text<>'') then  
  64.     begin  
  65.       lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)  
  66.     end;  
  67. end;  
  68.   
  69. procedure TForm1.Button2Click(Sender: TObject);  
  70. begin  
  71.   if edNilaiBinary.Text<> '' then  
  72.     begin  
  73.       lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));  
  74.     end;  
  75. end;  
  76.   
  77. 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 :)

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger