Halaman

Senin, 22 Mei 2017

Algoritma Konversi Angka ke Huruf dalam Pascal

program konversiangkahuruf;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
angka:integer;
huruf: string;

procedure satuan (angka: integer; var huruf: string);
begin
case angka of
0: huruf:= (' ');
1:huruf:= ('satu');
2:huruf:=('dua');
3:huruf:=('tiga');
4:huruf:= ('empat');
5:huruf:= ('lima');
6:huruf:='enam';
7:huruf:='tujuh';
8:huruf:='delapan';
9:huruf:='sembilan';
end;
end;

procedure belasan (angka: integer; var huruf: string);
begin
if angka=10 then huruf:= 'sepuluh'
else
 if angka =11 then huruf:= 'sebelas'
 else
  begin
  satuan (angka mod 10, huruf);
  huruf:= huruf + ' belas';
  end;
end;

procedure puluhan (angka:integer; var huruf: string);
var
a:string;

begin
if angka <10 then
satuan (angka, huruf)
 else
 if angka < 20 then
 belasan (angka, huruf)
  else
  begin
  satuan (angka div 10, huruf);
huruf:= huruf + ' puluh ' ;
a:= huruf;
satuan (angka mod 10, huruf);
huruf:= a + huruf;
end;
end;

procedure ratusan (angka: integer; var huruf: string);
var
a:string;

begin
if angka < 100 then
puluhan (angka, huruf)
else
if angka=100 then huruf:= 'seratus'
else
 if angka div 100 = 1 then
 begin
  puluhan (angka mod 100, huruf);
  huruf:= ' seratus ' +huruf;
 end
  else
  if angka mod 100 = 0 then
  begin
  satuan (angka div 100, huruf);
  huruf:= huruf + ' ratus '
  end
   else
    begin
    satuan (angka div 100, huruf);
    huruf:= huruf + ' ratus ';
    a:= huruf;
    puluhan (angka mod 100, huruf);
    huruf:=a + huruf;
    end;
end;

procedure ribuan (angka: integer; var huruf: string);
var
a:string;

begin
if angka=1000 then huruf:= 'seribu'
else
 if angka div 1000 = 1 then
 begin
  ratusan (angka mod 1000, huruf);
  huruf:= ' seribu ' +huruf;
 end
  else
  if angka mod 1000 =0 then
  begin
  satuan (angka div 1000, huruf);
  huruf:= huruf + ' ribu ';
  end
  else
  begin
   satuan (angka div 1000, huruf);
   huruf:= huruf + ' ribu ';
   a:= huruf;
   ratusan (angka mod 1000, huruf);
   huruf:=a + huruf;
  end;
end;

procedure konversi (angka: integer; var huruf: string);
begin
if (angka>= 0) and (angka < 10) then satuan (angka, huruf);
if (angka>=10) and (angka < 20) then belasan (angka, huruf);
if (angka>=20) and(angka < 100) then puluhan (angka, huruf);
if (angka>=100)and (angka < 1000) then ratusan (angka, huruf);
if (angka>=1000) and (angka < 10000) then ribuan (angka, huruf);
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }

write ('masukkan angka :'); readln (angka);
konversi (angka, huruf);
writeln (huruf);
readln;
end.

Tidak ada komentar:

Posting Komentar