Sabtu, 28 Mei 2011

Konversi Bilangan dengan Pascal

Halo Sobat ssemua, hari ini kita belajar metode numerik dech yang menggunakan Pascal, konversi bilangan ini hasil temen yang jago programer dia mas Sarwono pas ada tugas, thank mas @.


Yang terdiri dari konversi biner ke desimal,biner ke oktal, biner ke heksa dan sebaliknya.
Nich dia listing programnya :

program konversi_bilangan;
uses wincrt;
const max_array=25; {menentukan panjang karakter yang dapat ditangani}
var input : string; {menampung inputan bilangan}
pilih_menu : byte; {menampung pilihan menu}
kembali : char; {kembali ke menu}

{Untuk mengubah input menjadi nilai dalam desimal agar mempermudah penghitungan}
function nilaiBil(_bil:char):integer;
var Code : Word;
nilai: integer;
begin
case upcase(_bil) of
'A': nilaiBil:=10;
'B': nilaiBil:=11;
'C': nilaiBil:=12;
'D': nilaiBil:=13;
'E': nilaiBil:=14;
'F': nilaiBil:=15;
else
begin
Val(_bil,nilai,Code);
nilaiBil:=nilai;
end;
end;
end;

{ Convert integer type to a string }
function IntToStr(I: Longint): String;
var
S: string[11];
begin
Str(I, S);
IntToStr := S;
end;

{Untuk menghitung pangkat}
function pangkat(a,b:real) : integer;
begin
pangkat := round(exp(b * ln(a)));
end;

{Mengubah bilangan dari desimal ke tipe lain}
function dariDesimal(bil,basis : string): String;
var hasil : string;
Code:Word;
sisa,_bil,_basis:Integer;
begin
Val(basis,_basis,Code);
Val(bil,_bil,Code);
hasil:='';
repeat
sisa:=_bil mod _basis;
case sisa of
0: hasil:= '0' + hasil;
1: hasil:= '1' + hasil;
2: hasil:= '2' + hasil;
3: hasil:= '3' + hasil;
4: hasil:= '4' + hasil;
5: hasil:= '5' + hasil;
6: hasil:= '6' + hasil;
7: hasil:= '7' + hasil;
8: hasil:= '8' + hasil;
9: hasil:= '9' + hasil;
10:hasil:= 'A' + hasil;
11:hasil:= 'B' + hasil;
12:hasil:= 'C' + hasil;
13:hasil:= 'D' + hasil;
14:hasil:= 'E' + hasil;
15:hasil:= 'F' + hasil;
end;
_bil:=_bil div _basis;
until _bil=0;
dariDesimal:=hasil;
end;

{Untuk mengubah bilangan ke tipe desimal}
function keDesimal(bil,basis:String):String;
var i,j,_basis : Byte;
Code : Word;
hasil : Integer;
begin
Val(basis,_basis,Code);
hasil:=0;
j:=0;
for i:=Length(bil) downto 1 do
begin
hasil := hasil + nilaiBil(bil[i])*pangkat(_basis,j);
inc(j);
end;
keDesimal:=IntToStr(hasil);
end;

{Untuk menggambar garis horisontal menyesuaikan panjang string inputan}
function garisbawah(kalimat:string):string;
var i:byte;
garis : String;
begin
garis:='';
for i:=1 to Length(kalimat) do
garis:=garis+'=';
garisbawah:=garis;
end;

{Prosedur tampilan konversi bilangan}
procedure konversiBilangan(x,y:String);
var _x,_y : String;
ulangi : char;
begin
repeat
clrscr;
if x='2' then _x:='biner'
else if x='8' then _x:='oktal'
else if x='10' then _x:='desimal'
else _x:='heksa';

if y='2' then _y:='biner'
else if y='8' then _y:='oktal'
else if y='10' then _y:='desimal'
else _y:='heksa';

writeln('Konversi bilangan ',_x,' ke ',_y);
writeln(garisbawah('Konversi bilangan '+_x+' ke '+_y));
writeln;
write('Masukkan bilangan: ');readln(input);
if y='10' then
writeln('Nilai desimal dari bilangan ',input,' = ',keDesimal(input,x))
else if x='10' then
writeln('Nilai ',_y,' dari bilangan ',input,' = ',dariDesimal(input,y))
else
begin
write('Nilai ',_y,' dari bilangan ',input,' = ',dariDesimal(keDesimal(input,x),y));
end;
writeln;
write('Apakah anda ingin mengulangi ?[Y/T]');
ulangi:=readkey;
until upcase(ulangi)='T';
end;

{Prosedur tampilan menu}
procedure Menu;
begin
clrscr;
writeln('Program Konversi Bilangan');
writeln(garisbawah('Program Konversi Bilangan'));
writeln;
writeln('Menu :');
writeln('1. Konversi biner ke oktal');
writeln('2. Konversi biner ke desimal');
writeln('3. Konversi biner ke heksa');
writeln('4. Konversi oktal ke biner');
writeln('5. Konversi oktal ke desimal');
writeln('6. Konversi oktal ke heksa');
writeln('7. Konversi desimal ke biner');
writeln('8. Konversi desimal ke oktal');
writeln('9. Konversi desimal ke heksa');
writeln('10.Konversi heksa ke biner');
writeln('11.Konversi heksa ke oktal');
writeln('12.Konversi heksa ke desimal');
writeln('13.Keluar program');
writeln;
write('Masukkan pilihan anda : ');readln(pilih_menu);
case pilih_menu of
1 : konversiBilangan('2','8');
2 : konversiBilangan('2','10');
3 : konversiBilangan('2','16');
4 : konversiBilangan('8','2');
5 : konversiBilangan('8','10');
6 : konversiBilangan('8','16');
7 : konversiBilangan('10','2');
8 : konversiBilangan('10','8');
9 : konversiBilangan('10','16');
10 : konversiBilangan('16','2');
11 : konversiBilangan('16','8');
12 : konversiBilangan('16','10');
13 : donewincrt;
end;
end;

{Program utama}
begin
repeat
menu;
until false;
end.

Dan ini hasilnya:
Ini sourecenya :
http://www.wupload.com/file/3353562/Konversi_Bilangan_dengan_Pascal.rar





Tidak ada komentar:

Posting Komentar



Galery Semester

- Pendidikan Pancasila

- Pendidikan Agama (Etika Muslim)

- Matematika Bisnis

- Algoritma dan Struktur Data

- Pemrograman Komputer I

- Bahasa Inggris I

- Elektronika Dasar

- Pengantar Manajemen

- Pengantar Teknologi Informasi

- Konsep Sistem Informasi

- Struktur Data

- Lingkungan Bisnis

- Komunikasi Data

- Bahasa Inggris II

- Teknik Digital

- Organisasi Komputer

- Sistem Operasi

- Statistik Dasar

- Kepemimpinan

- Matematika Diskrit - Mikroprosesor

- Pemrograman

- Tugas Pemrograman

- Pengolahan Basis Data

- Bahasa Inggris III

- Praktikum Hardware / Software

- Jaringan Komputer I

- Komputer Grafis

- E-Commerse

- Praktikum Elektronika Digital

- Jaringan Komputer II

- Manajemen Sains

- Multimedia

- Pemrograman Basis Data

- Pemrograman Komputer II

- Sistem Informasi Manajemen

 Ex-selo Band with girl vocal,and then who is she...?
 


ShoutMix chat widget



free counters
This Blog is proudly powered by Blogger.com | Template by Angga Leo Putra | Modif By Sava