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
wah, keren, ternyata notepad juga bisa gitu ya,
ReplyDeleteGile keren, padahal cuma notepad ye :) (y)
ReplyDeletehttp://duniacupris.blogspot.com/2013/12/cara-instal-dua-sistim-operasi-dalam.html
wahhh mantab sob
ReplyDeleteItu dibagi jadi beberapa procedure dan function gan... baca deh pelan" pasti ngerti deh
ReplyDeletegan tolong bantuannya dong menyelesaikan tugs ini,
ReplyDeleteProgram file1;
uses wincrt;
var
berkastext : text;
kodebarang : string[5];
namabarang : string[20];
unitbarang : integer;
hargabarang: real;
kodecari : string[5];
spasi : string[5];
lagi : char;
begin
assign(berkastext,'E:/coba.txt');
lagi:='Y';
while upcase(lagi)='Y' do
begin
spasi:=' ';
reset(berkastext);
clrscr;
write('kode barang dicari? ');readln(kodecari);
writeln;
kodecari:=copy(spasi,1,5 - length(kodecari))+kodecari;
while (not eof(berkastext)) and (kodebarang <> kodecari) do
readln(berkastext,kodebarang,namabarang,unitbarang,hargabarang);
if kodebarang = kodecari then
begin
writeln('nama barang : ',namabarang);
writeln('unit barang : ',unitbarang:7);
writeln('harga barang: ',hargabarang:10:2);
end
else
write('tidak ada data barang ini!!!');
close(berkastext);
writeln;
write('ada data yang akan dicari[Y/T]?');readln(lagi);
end;
end.
Thanks goood bray, mantap programnya sangat membantu
ReplyDeletekeren banget kak infonya bakal dicoba
ReplyDeletexl pro