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 :)
0 komentar:
Post a Comment