Kumpulan Materi Kuliah, Berita Unik, Download Software dan Wallapaper

Saturday, November 30, 2013

Tugas Proyek Program Konversi Desimal Dan Oktal



L A P O R A N

T U G A S    P R O J E C T
  PROGRAM KONVERSI DESIMAL DAN OKTAL

DIBUAT GUNA MEMENUHI TUGAS MATA KULIAH
                                                            SISTEM DIGITAL



Disusun Oleh :

1.Muhammad Ridwan Ramadhan  ( 09018144 )

2. Muhammad Saprudin Nawawi  ( 09018163 )

 3.Sovian Rizqiawan ( 09018151  )



PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
YOGYAKARTA
2010





A.    PENGENALAN BAHASA PEMROGRAMAN
Pada awalnya program konversi ini akan menggunakan bahasa pemrograman C++, namun karena beberapa pertimbangan diantaranya tampilan bahasa pemrograman C++ yang kurang menarik untuk program konversi seperti ini, maka kami memutuskan untuk menggunakan bahasa pemrograman Delphi, pada tugas ini kami menggunakan Borland Delphi 6.
Delphi merupakan salah satu bahas pemrograman yang bekerja di bawah lingkup system operasi Windows, dimana Delphi memberikan fasilitas – fasilitas pembuatan aplikasi visual seperti Visual Basic.
Dengan menggunakan Delphi kita dapat membuat aplikasi berbasis Windows dengan beberapa keunggulan, yaitu pada prouktivitas, kualitas, pengembangan perangkat lunak, kecepatan kompiler, pola desain yang menarik, serta diperkuat dengan bahasa pemrograman yang terstruktur dalam struktur bahasa pemrograman Object Pascal.


B.     LISTING PROGRAM
Berikut ini listing program Konversi Desimal dan Oktal dalam bahasa pemrograman Delphi :

<pre name="code" class="JScript">


unit bilangan;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button7: TButton;

    Button8: TButton;

    Button9: TButton;

    Button13: TButton;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure Button13Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

{ Mengkonversikan bilangan Desimal Ke bilangan Biner }

procedure TForm1.Button1Click(Sender: TObject);

var

a:array[1..99] of word;

i,k,d:word;

begin

Label1.Caption:='DESIMAL';

Label2.Caption:='BINER';

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;

{ Mengkonversikan bilangan Desimal Ke bilangan Oktal }

procedure TForm1.Button2Click(Sender: TObject);

var

a:array[1..99] of word;

i,k,d:word;

begin

Label1.Caption:='DESIMAL';

Label2.Caption:='OKTAL';

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;

{ Mengkonversikan bilangan Desimal Ke bilangan Heksadesimal }

procedure TForm1.Button3Click(Sender: TObject);

var

a:array[1..99] of word;

i,k,d:word;

c:shortstring;

begin

Label1.Caption:='DESIMAL';

Label2.Caption:='HEKSADESIMAL';

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';

else c:=inttostr(a[i]);

end;

edit2.Text:=edit2.Text+c;

end;

end;

{ Mengkonversikan bilangan Oktal Ke bilangan Desimal }

procedure TForm1.Button7Click(Sender: TObject);

var biloktal : string;

s : integer;

{ function untuk menghitung a pangkat b}

function pangkat(a, b : integer) : integer;

var i, hasil : integer;

begin

   hasil := 1;

   for i:=1 to b do

   begin

       hasil := hasil * a;

   end;

   pangkat := hasil;

end;

{ function untuk menghitung konversi oktal ke desimal }

function oktl2Dec(oktal : string) : integer;

var n, sum, i  : integer;

begin

   n := length(oktal);

   sum := 0;

   for i:= n-1 downto 0 do

   begin

       if (oktal[n-i] = '0') then sum := sum + 0 * pangkat(8, i)

       else if (oktal[n-i] = '1') then sum := sum + 1 * pangkat(8, i)

       else if (oktal[n-i] = '2') then sum := sum + 2 * pangkat(8, i)

       else if (oktal[n-i] = '3') then sum := sum + 3 * pangkat(8, i)

       else if (oktal[n-i] = '4') then sum := sum + 4 * pangkat(8, i)

       else if (oktal[n-i] = '5') then sum := sum + 5 * pangkat(8, i)

       else if (oktal[n-i] = '6') then sum := sum + 6 * pangkat(8, i)

       else if (oktal[n-i] = '7') then sum := sum + 7 * pangkat(8, i);

   end;

   oktl2Dec := sum;

end;

begin

Label1.Caption:='OKTAL';

Label2.Caption:='DESIMAL';

   biloktal:=edit1.Text;

   s:=oktl2Dec(biloktal);

   edit2.Text:=inttostr(s);

   end;

{ Mengkonversikan bilangan Oktal Ke bilangan Biner }

procedure TForm1.Button8Click(Sender: TObject);

var biloktal : string;

s : integer;

a:array[1..99] of word;

i,k:word;

{ function untuk menghitung a pangkat b}

function pangkat(a, b : integer) : integer;

var i, hasil : integer;

begin

   hasil := 1;

   for i:=1 to b do

   begin

       hasil := hasil * a;

   end;

   pangkat := hasil;

end;

{ function untuk menghitung konversi oktal ke biner }

function oktl2Dec(oktal : string) : integer;

var n, sum, i  : integer;

begin

   n := length(oktal);

   sum := 0;

   for i:= n-1 downto 0 do

   begin

       if (oktal[n-i] = '0') then sum := sum + 0 * pangkat(8, i)

       else if (oktal[n-i] = '1') then sum := sum + 1 * pangkat(8, i)

       else if (oktal[n-i] = '2') then sum := sum + 2 * pangkat(8, i)

       else if (oktal[n-i] = '3') then sum := sum + 3 * pangkat(8, i)

       else if (oktal[n-i] = '4') then sum := sum + 4 * pangkat(8, i)

       else if (oktal[n-i] = '5') then sum := sum + 5 * pangkat(8, i)

       else if (oktal[n-i] = '6') then sum := sum + 6 * pangkat(8, i)

       else if (oktal[n-i] = '7') then sum := sum + 7 * pangkat(8, i);

   end;

   oktl2Dec := sum;

end;

begin

Label1.Caption:='OKTAL';

Label2.Caption:='BINER';

   biloktal:=edit1.Text;

   s:=oktl2Dec(biloktal);

   edit2.Clear;

k:=0;

While s>=2 do begin

k:=k+1;

a[k]:=s mod 2;

s:=s div 2;

end;

k:=k+1;

a[k]:=s;

for i:=k downto 1 do

edit2.Text:=edit2.text+inttostr(a[i]);

   end;

{ Mengkonversikan bilangan Oktal Ke bilangan Heksadesimal }

procedure TForm1.Button9Click(Sender: TObject);

var biloktal : string;

s : integer;

a:array[1..99] of word;

i,k:word;

c:shortstring;

{ function untuk menghitung a pangkat b}

function pangkat(a, b : integer) : integer;

var i, hasil : integer;

begin

   hasil := 1;

   for i:=1 to b do

   begin

       hasil := hasil * a;

   end;

   pangkat := hasil;

end;

{ function untuk menghitung konversi oktal ke heksadesimal }

function oktl2Dec(oktal : string) : integer;

var n, sum, i  : integer;

begin

   n := length(oktal);

   sum := 0;

   for i:= n-1 downto 0 do

   begin

       if (oktal[n-i] = '0') then sum := sum + 0 * pangkat(8, i)

       else if (oktal[n-i] = '1') then sum := sum + 1 * pangkat(8, i)

       else if (oktal[n-i] = '2') then sum := sum + 2 * pangkat(8, i)

       else if (oktal[n-i] = '3') then sum := sum + 3 * pangkat(8, i)

       else if (oktal[n-i] = '4') then sum := sum + 4 * pangkat(8, i)

       else if (oktal[n-i] = '5') then sum := sum + 5 * pangkat(8, i)

       else if (oktal[n-i] = '6') then sum := sum + 6 * pangkat(8, i)

       else if (oktal[n-i] = '7') then sum := sum + 7 * pangkat(8, i);

   end;

   oktl2Dec := sum;

end;

begin

Label1.Caption:='OKTAL';

Label2.Caption:='HEKSADESIMAL';

   biloktal:=edit1.Text;

   s:=oktl2Dec(biloktal);

   edit2.Clear;

k:=0;

While s>=16 do begin

k:=k+1;

a[k]:=s mod 16;

s:=s div 16;

end;

k:=k+1;

a[k]:=s;

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';

else c:=inttostr(a[i]);

end;

edit2.Text:=edit2.Text+c;

end;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

Label1.Caption:='INPUT';

Label2.Caption:='OUTPUT';

edit1.Clear;

edit2.Clear;

end;

end.

</pre>



A.    HASIL RUNNING
Ketika dijalankan, tampilan awal program konversi Desimal dan Oktal adalah seperti berikut : 

Untuk menggunakan program diatas, pertama-tama kita harus menginputkan bilangan yang akan di konversi pada kolom INPUT, setelah itu meng-klik jenis konversi yang diingankan, maka hasil konversi yang kita inginkan akan tampil pada kolom OUTPUT. Jika ingin melakukan konversi bilangan lagi, silahkan klik kolom ANGKA BARU untuk membersihkan bilangan yang ada pada kolom INPUT dan OUTPUT pada yang merupakan hasil kegiatan konversi sebelumnya.
Pada contoh kali ini, kita akan mengkonversi bilangan desimal 2010 kedalam bilangan oktal. Langkah awal adalah memasukkan bilangan 2010 pada kolom input seperti berikut :


Setelah itu klik kolom “Desimal Ke Oktal”, maka hasilnya adalah seperti berikut :