07 Juni 2009

Tugas Pascal IV

Soal:
Buat program perekaman dengan ketentuan sebagai berikut:
Gunakan record untuk perekaman data seperti masukan dibawah ini
DEALER MOTOR “JAYA”
------------------------------
Nama Pembeli:
Data Motor
- Merk Motor : _______ input
- Jenis Motor : _______input
- Harga Motor : Rp.____input
Jenis Bayar [Tunai/Kredit] :_______input
Masukkan data lagi [Y/T]:______input

Buat function untuk menentukan diskon
------------------------
Merk | Diskon |
| Tunai |Kredit |
------------------------
Honda |20% |5% |
Yamaha |20% |7% |
Kawasaki|20% |6% |
------------------------
Diskon diberikan dari harga motor
Buatlah function urutdata untuk mengurutkan data
Buatlah function cetakdata untuk mencetak data

Tampilan keluaran:
Dealer Motor “Jaya”
===================================================================================
No Nama Pembeli Merk Harga Jenis Bayar Diskon Jumlah Bayar
=================================================================================== Rp. Rp.
===================================================================================

Jawaban:
uses crt;

const max = 10;
type dealer = Record
nama,merk,jns,jb : string;
hrg : longint;
disk,jml : real;
End;
datamotor = array[1..max] of dealer;

var
data : datamotor;
a : integer;


function diskon(var mrk,jn:string;var hrg:longint) : real;
Begin
if mrk='Honda' then
begin
if jn='Tunai' then
diskon:=0.2*hrg
else if jn='Kredit' then
diskon:=0.05*hrg
else diskon:=0;
end
else if mrk='Yamaha' then
begin
if jn='Tunai' then
diskon:=0.2*hrg
else if jn='Kredit' then
diskon:=0.07*hrg
else
diskon:=0;
end
else if mrk='Kawasaki' then
begin
if jn='Tunai' then
diskon:=0.2*hrg
else if jn='Kredit' then
diskon:=0.06*hrg
else diskon:=0;
end;

End;


function BacaData:real;
var
Lagi : Char;
Begin
a := 0;
REPEAT

a := a + 1;
WITH data[a] DO
Begin
WriteLn('DEALER MOTOR "JAYA"');
Write('Nama Pembeli : '); ReadLn(nama);
Writeln('Data Motor');

Write('- Merk Motor : '); ReadLn(merk);
Write('- Jenis Motor : '); ReadLn(jns);
Write('- Harga Motor : '); ReadLn(hrg);
write('Jenis Bayar [Tunai/Kredit]: ');readln(jb);

disk := diskon(merk,jb,hrg);
jml:=hrg-disk;

Write('Input Data Lagi [Y/T] : '); ReadLn(Lagi);

IF a + 1 > max Then
Begin
Lagi := 'T';
End;
End;
UNTIL UPCASE(LAGI) = 'T';
End;

function UrutData:real;
VAR
i, j : integer;
simpan : dealer;
Begin
FOR i := 1 To a - 1 DO
FOR i := 1 + i To a DO
IF data[i].disk < data[j].disk THEN
Begin
simpan := data[i];
data[i] := data[j];
data[j] := simpan;
End;
End;

Procedure CetakData;
VAR
i : Integer;
Begin
clrscr;
writeln;

writeln('DEALER MOTOR "JAYA"');
writeln('=============================================================================');
writeln('No Nama Pembeli Merk Harga Jenis Bayar Diskon Jumlah Bayar');
writeln('=============================================================================');
for i := 1 to a do
begin
with data[i] DO
writeln(i:2,' ',nama:15,' ',merk:10,' ',hrg:10,' ',jb:12,' Rp.',disk:2:0,' Rp.',jml:2:0);
end;
writeln('=============================================================================');
End;

{PROGRAM UTAMA}
begin
clrscr;
BacaData;
UrutData;
CetakData;
readln;
end.

Selengkapnya....