uses crt;
var bilangan:String[10];
procedure satuan(i:integer);
begin
if (bilangan[i] = '1') then
write('satu')
else
if (bilangan[i] = '2') then
write('dua')
else
if (bilangan[i] = '3') then
write('tiga')
else
if (bilangan[i] = '4') then
write('empat')
else
if (bilangan[i] = '5') then
write('lima')
else
if (bilangan[i] = '6') then
write('enam')
else
if (bilangan[i] = '7') then
write('tujuh')
else
if (bilangan[i] = '8') then
write('delapan')
else
if (bilangan[i] = '9') then
write('sembilan');
end;
procedure puluhan(i:integer);
begin
if (bilangan[i-1] = '1') then
begin
if (bilangan[i] = '0') then
write('sepuluh')
else
if (bilangan[i] = '1') then
write('sebelas')
else
if (bilangan[i] = '2') then
write('duabelas')
else
if (bilangan[i] = '3') then
write('tigabelas')
else
if (bilangan[i] = '4') then
write('empatbelas')
else
if (bilangan[i] = '5') then
write('limabelas')
else
if (bilangan[i] = '6') then
write('enambelas')
else
if (bilangan[i] = '7') then
write('tujuhbelas')
else
if (bilangan[i] = '8') then
write('delapanbelas')
else
if (bilangan[i] = '9') then
write('sembilanbelas');
end
else
begin
satuan(i-1);
write(' puluh ');
satuan(i);
end;
end;
procedure ratusan(i:integer);
begin
if (bilangan[i-2] = '1') then
begin
write('seratus ');
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i);
end
else
begin
satuan(i-2);
write(' ratus ');
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i);
end;
end;
procedure ribuan(i:integer);
begin
if (bilangan[i-3] = '1') then
begin
write('seribu ');
if (bilangan[i-2] = '0') then
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i);
end
else
begin
satuan(i-3);
write(' ribu ');
if (bilangan[i-2] = '0') then
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i);
end;
end;
procedure puluhribu(i:integer);
begin
puluhan(i-3);
write(' ribu ');
if (bilangan[i-2] = '0') then
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i);
end;
procedure ratusribu(i:integer);
begin
ratusan(i-3);
write(' ribu ');
if (bilangan[i-2] = '0') then
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i);
end;
procedure juta(i:integer);
begin
satuan(i-6);
write(' juta ');
if (bilangan[i-5] = '0') then
if (bilangan[i-4] = '0') then
if (bilangan[i-3] = '0') then
if (bilangan[i-2] = '0') then
if (bilangan [i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i)
else
ribuan(i)
else
puluhribu(i)
else
ratusribu(i);
end;
procedure puluhjuta(i:integer);
begin
puluhan(i-6);
write(' juta ');
if (bilangan[i-5] = '0') then
if (bilangan[i-4] = '0') then
if (bilangan[i-3] = '0') then
if (bilangan[i-2] = '0') then
if (bilangan [i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i)
else
ribuan(i)
else
puluhribu(i)
else
ratusribu(i);
end;
procedure ratusjuta(i:integer);
begin
ratusan(i-6);
write(' juta ');
if (bilangan[i-5] = '0') then
if (bilangan[i-4] = '0') then
if (bilangan[i-3] = '0') then
if (bilangan[i-2] = '0') then
if (bilangan [i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i)
else
ribuan(i)
else
puluhribu(i)
else
ratusribu(i);
end;
procedure milyar(i:integer);
begin
satuan(i-9);
write(' milyar ');
if (bilangan[i-8] = '0') then
if (bilangan[i-7] = '0') then
if (bilangan[i-6] = '0') then
if (bilangan[i-5] = '0') then
if (bilangan [i-4] = '0') then
if (bilangan[i-3] = '0') then
if (bilangan[i-2] = '0') then
if (bilangan[i-1] = '0') then
satuan(i)
else
puluhan(i)
else
ratusan(i)
else
ribuan(i)
else
puluhribu(i)
else
ratusribu(i)
else
juta(i)
else
puluhjuta(i)
else
ratusjuta(i);
end;
var digit,i,j:integer;
begin
clrscr;
write('digit bilangan : ');readln(digit);
write('Masukkan bilangan : ');readln(bilangan);
case (digit) of
1:satuan(digit);
2:puluhan(digit);
3:ratusan(digit);
4:ribuan(digit);
5:puluhribu(digit);
6:ratusribu(digit);
7:juta(digit);
8:puluhjuta(digit);
9:ratusjuta(digit);
10:milyar(digit);
end;
readkey;
end.
thanks for Aly Yasser Pranajaya
atas bantuannya :)
Pascal: Konversi Bilangan ke Desimal
Selasa, 03 Mei 2011
0 Comment