Get Gifs at CodemySpace.com

Sabtu, 21 Juni 2014

Program Konversi Bilangan (Array)

Assalamu'alaikum Wr.Wb
Sudah lamaaaa sekali tidak posting nih, :)

Kali ini, saya akan memposting tentang membuat program dengan Aplikasi Delphi 7. Hal ini dikarenakan untuk memenuhi tugas akhir semester untuk Mata Kuliah Praktikum Struktur Data.

Untuk Program yang pertama, saya membuat program Konversi Bilangan, dari Desimal ke Biner, dari Desimal ke Octal, dan dari Desimal ke Hexadesimal.

Secara keseluruhan, bentuk Form seperti ini :

OverAll
Listing Programnya

 Langkah-langkah menulis scriptnya ::
1. Buat form seperti di atas, setelah itu klik dua kali pada button Dec to Bin. Button ini berfungsi untuk mengubah bilangan desimal ke bilangan Biner.

2. Setelah muncul list program,  tulis script berikut :
 
  procedure TDyahNaufal_2B.Button1Click(Sender: TObject);
var
a:array[1..99]of word;
i,k,d:word;

begin
edit2.Clear;
d:=strtoint(edit1.Text);
k:=0;
while d>=2 do begin
k:=k+1;
a[k]:=d mod 2;
d:=d div 2;
end;
k:=k+1;
a[k]:=d;
for i:=k downto 1 do
edit2.Text:=edit2.Text+inttostr(a[i]);
end;


 3. Untuk mengeceknya, berhasil apa tidaknya, silahkan tekan F9 pada keyboard atau klik icon running berwarna hijau pada toolbar. Jika ada yang salah, akan muncul warna MERAH pada listing programnya.

4. Jika berhasil, tekan ESC dulu pada keyboard untuk melanjutkan ke Button berikutnya.

5. Klik dua kali pada Button Dec to Oct, yang berfungsi sebagai button untuk mengubah Desimal ke bilangan Octal.

6. Selanjutnya, script yang ditulis adalah sebagai berikut :

  procedure TDyahNaufal_2B.Button3Click(Sender: TObject);
var
a:array[1..99]of word;
i,k,d:word;

begin
edit2.Clear;
d:=strtoint(edit1.Text);
k:=0;
while d>=8 do begin
k:=k+1;
a[k]:=d mod 8;
d:=d div 8;
end;
k:=k+1;
a[k]:=d;
for i:=k downto 1 do
edit2.Text:=edit2.Text+inttostr(a[i]);
end;


 Dan tekan F9 untuk pengecekkan.. Jika berhasil ESC dulu, kalau gagal atau ada warna merah, silahkan cek satu persatu pada list programnya.

7. Untuk Button berikutnya, Dec to Hex berfungsi untuk mengkonversi dari bilangan desimal ke bilangan Hexadesimal. Seperti biasa, klik dua kali pada button tersebut.

8. Untuk Hexadesimal kali ini, 10 dituliskan A dan seterusnya sampai 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G). Untuk yang ini kita tambahkan percabangan Case of .
Dan script yang dituliskan ialah ::

 procedure TDyahNaufal_2B.Button4Click(Sender: TObject);
var
a:array[1..99]of word;
i,k,d:word;
c:shortstring;

begin
edit2.Clear;
d:=strtoint(edit1.Text);
k:=0;
while d>=16 do begin
k:=k+1;
a[k]:=d mod 16;
d:=d div 16;
end;
k:=k+1;
a[k]:=d;
for i:=k downto 1 do begin
case a[i] of
10:c:='A';
11:c:='B';
12:c:='C';
13:c:='D';
14:c:='E';
15:c:='F';
16:c:='G';
else c:=inttostr(a[i]);
end;
edit2.Text:=edit2.Text+c;
end;


Lalu tekan F9.

9. Yang terakhir, jangan lupa untuk Button Exit, yang ini biasanya digunakan untuk keluar dari program yang sedang berjalan/running. Berikut scriptnya : ;)

procedure TDyahNaufal_2B.Button2Click(Sender: TObject);
begin
HALT
end;

nahhh, pasti ada yang tanya, dari tulisan script di atas pasti ada tulisan TDyahNaufal_2B.Button*Click. Itu maksudnya, yang DyahNaufal_2B itu nama form yang saya pakai, dan Button*click itu menunnjukan button atau tombol yang dipakai ;)
  
  
Running Program

Inilah jadinya program yang dibuat tadi ketika di Run.

Untuk hasil dari masing-masing konverter ::
Konversi dari Desimal ke Biner

Konversi Desimal ke Octal

Konversi Desimal ke Hexadesimal

Yupps, sekian dari posting saya, kalaulah ada yang tidak cocok seperti yang saya tuliskan, mohon dibenarkan.

Terima Kasih,
Wassalamu'alaikum Wr.Wb

Program Koversi Biner Ke Desimal (FUNCTION DAN PROCEDURE)

Ass.Wr.Wb

kembali posting teman-teman...semooga bukan yang terakhir.. heheh
program selanjutnya yang saya posting ini tentang konverter biner ke desimal..
agak rumit ya menurut saya...karena error terus dari kemaren...pusing juga :D

okelah lanjut saja, buat form seperti ini ya kakak ;) ::

untuk edit2.text di bawah label masukkan bilangan biner dan edit1.text di bawah label hasil bilangan desimal..oke ;)

1. pertama, masukan uses Math terlebih dahulu pada script usesnya..

2. kemudian ketik ini :: (di bawahnya Public declarations)
   //disini untuk membuat function BinaryToDecimal
    function BinaryToDecimal (str:string):integer;

3.sesudah itu tulis script functionnya di bawah implementation ya .., berikut scriptnya :)
   function BinaryToDecimal(str:string):integer;
var Len, Res, i:integer; Error:boolean;

 begin
 Error:= False;
 Len:=Length(str);
 Res:=0;
 for i:=1 to Len do
 if (str[i]='0') or (str[i]='1') then
 Res:=Res+round(Power(2,Len-i))*strtoint(str[i])
 else
 begin
 MessageDlg('Bukan Angka Biner', mtInformation, [mbOK], 0);
 Error:=True;
 Break;
 end;

 if Error = True then
 Result:=0
 else
 Result:=Res;
 end;

4. selanjutnya ke Button click, seperti biasanya...klik dua kali pada buttonnya lalu tulis script berikut ini ::
    procedure TForm1.Button1Click(Sender: TObject);
begin
 if edit2.Text <> '' then
 edit1.text:=inttostr(BinaryToDecimal(edit2.text));
 end;

Nih listing program ku ::


sudah beres semua, jangan lupa tekan F9 ya , running deehhh.. ::


mau tau hasil convertnya ?? yuk disimak yang ini ;)


jeng jeng jeeeeengg....bisa di cek deh pake manual...




sekian ya teman-teman, Wass War Wab :*

Program Quick Sort

Ass.Wr.Wb
Kembali lagi dengan posting tentang program. kali ini tentang sortir data....yuk disimak :)

Secara umum bentuk form seperti ini saja cukup ::

nah..selanjutnya menulis script..yeay

listing programnya seperti ini yah ::
sebelumnya, ketik ini dulu dibawah private declaration ::
   { Private declarations }
    //deklarasi array data pada bagian private
    Data:array of integer;


selanjutnya, fungsi quick sortnya nih :: (ketik dibawah $R.dfm)
//fungsi quick sort
procedure QuickSort(var A: array of integer; iLo,iHi: integer);
var
  Lo,Hi,Pivot,T : integer;
begin
  Lo:=iLo;
  Hi:=iHi;
  Pivot:=A[(Lo+Hi)div 2];
  repeat
    while A[Lo] < Pivot do Inc(Lo);
    while A[Hi] > Pivot do Dec(Hi);
    if Lo <= Hi then
  begin
    T:=A[Lo];
    A[Lo]:=A[Hi];
    A[Hi]:=T;
    Inc(Lo);
    Dec(Hi);
  end;
  until Lo > Hi;
  if Hi > iLo then QuickSort(A,iLo,Hi);
  if Lo < iHi then QuickSort(A,Lo,iHi);
end;


lanjut...ke button click yang pertama ya..
procedure TDyahNaufal_2b.Button1Click(Sender: TObject);
var
  nilai : integer;
begin
  //validasi inputan yang akan ditambahkan
  if trystrtoint(Edit1.Text,nilai) then ListBox1.Items.Add(inttostr(nilai));
end;

ke button click selanjutnya temaan...
procedure TDyahNaufal_2b.Button2Click(Sender: TObject);
var
  indek : word;
begin
  //menentukan panjang array
  SetLength(Data,ListBox1.Items.Count);
  //pemasukan nilai ke array
  for indek:=0 to ListBox1.items.Count - 1 do
  Data[indek]:=strtoint(ListBox1.Items[indek]);
  //proses pengurutan
  Quicksort(data,Low(Data),High(Data));
  //kosongkan hasil
  ListBox2.Items.Clear;
  //memasukkan nilai hasil
  for indek :=0 to ListBox1.Items.Count - 1 do
  ListBox2.Items.Add(inttostr(data[indek]));
end;


yang terakhirr button exit cukup ketik ini ::
procedure TDyahNaufal_2b.Button3Click(Sender: TObject);
begin
  close;
end;

end.

sudaaah... tekan F9  yaa.. running dehhh.. ::





hasilnyaaa..:: tarrraa...::