Program pascal menyimpan file di notepad - Setelah sharing banyak tentang program - program pascal, kali ini saya kembali sharing pemrograman pascal dengan soal yang lebih rumit yaitu melakukan perhitungan yang kemudian file atau data disimpan di sebuah notepad menggunakan pascal.
Soal :
Hasil
Soal :
Buatlah sebuah program menghitung total belanja dimana hasil dari pengolahan data tersebut disimpan disebuah notepad. Dalam perhitungan ini ada sistem bonus , diskon dan pajak didalam program pascal yang dibuat . Setelah itu program juga harus ada pilihan akan menampilkan data atau tidak.Solusi :
program data1;
type
Shoplist=record
nama:string;
hrg,qty,jml: integer;
end;
var
buy: text;
x:char;
totharga,n,i: integer;
sale,pajak,pay: real;
pjk,dis,bonus: string;
data: array [1..1000] of shoplist;
procedure inputdata;
begin
write('masukan banyak jenis barang : '); readln(n);
for i:=1 to n do
begin
writeln('jenis barang ke ',i);
write('Nama barang : '); readln(data[i].nama);
write('Harga barang : '); readln(data[i].hrg);
write('Banyak barang : '); readln(data[i].qty);
writeln;
end;
end;
procedure proses1;
begin
for i:= 1 to n do
begin
data[i].jml:= data[i].hrg*data[i].qty;
end;
totharga:= 0;
for i:= 1 to n do
begin
totharga:= totharga + data[i].jml;
end;
if (totharga >= 6000000) and (totharga < 7000000) then dis:='( 15% )';
if (totharga >= 7000000) and (totharga < 8000000) then dis:='(17.5%)';
if totharga >= 8000000 then dis:='( 25% )';
end;
function diskon(a:integer):real;
begin
if (a >= 6000000) and (a < 7000000) then diskon:= a-(a*0.15);
if (a >= 7000000) and (a < 8000000) then diskon:= a-(a*0.175);
if a >= 8000000 then diskon:= a-(a*0.25);
end;
function pajaks(b:real):real;
begin
if (b <= 5000000) then pajaks:= b+(b*0.05);
if (b > 5000000) and (b < 7000000) then pajaks:= b+(b*0.1);
if b >= 7000000 then pajaks:= b+(b*0.15);
end;
procedure proses2;
begin
sale:= diskon(totharga);
pajak:= pajaks(sale);
pay:= pajak;
if (sale >= 5000000) and (sale < 6000000) then pjk:='( 5% )';
if (sale >= 6000000) and (sale < 7000000) then pjk:='( 10% )';
if sale >= 7000000 then pjk:='( 15% )';
if totharga < 5000000 then bonus:='Mouse Pad' else bonus:='payung';
end;
procedure tuliskenotepad;
begi
assign(buy,'D:\tugas.txt');
rewrite(buy);
writeln(buy,'--------------------------------------------------');
writeln(buy,'|No | Nama Barang | Harga | Qty | Total |');
writeln(buy,'--------------------------------------------------');
for i:= 1 to n do
begin
writeln(buy,i:2,data[i].nama:14,data[i].hrg:13,data[i].qty:5,data[i].jml:13);
end;
writeln(buy,'==================================================');
writeln(buy,' Total Harga ',totharga);
writeln(buy,' Diskon ',dis,' ',sale:0:0);
writeln(buy,' Pajak ',pjk,' ',pajak:0:0);
writeln(buy,'==================================================');
writeln(buy,' Bayar ',pay:0:0);
writeln(buy,'Bonus ',bonus);
writeln(buy,'--------------------------------------------------');
writeln(buy,' ud. bali indigo komputer ');
writeln(buy,' pertokoan komputer alam dewata panjer denpasar ');
close(buy);
end;
var
filenama : text;
pesan: string;
begin
inputdata; proses1; proses2;
tuliskenotepad
writeln('---------------------------------------');
writeln('|..LAPORAN TELAH DISIMPAN DI NOTEPAD..|');
writeln('| D:\tugas.txt |');
writeln('---------------------------------------');
writeln;
writeln(' TAMPILKAN / KIRIM LAPORAN KE DOS ??? ');
write('TEKAN "Y" UNTUK YA, atau "T" UNTUK TIDAK ===> ');readln(x);
writeln;
if (x='y') or (x='Y') then
begin
assign(filenama,'D:\tugas.txt');
reset(filenama);
while not eof(filenama) do
begin
readln(filenama,pesan);
writeln(pesan);
end;
close(filenama); ;
end;
readln;
end.
Hasil
Program pascal menyimpan file di notepad
4/
5
Oleh
Daftar Harga