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 :