Copy kan aj smua yg ada di bawah ini, lalu pastekan ke turbo pascal, insyaallah langsung jalan
Program Lat_1;
Uses crt;
Type Penjualan = Record
nofaktur : string[6];
tglPenjualan : string[17];
JnsPkt : string[1];
HrgPkt : real;
JmlPkt : integer;
Pembayaran : real;
diskon : real;
totBayar : real;
end;
var FilePenjualan : File of Penjualan;
RecordPenjualan : Penjualan;
Lagi, Hapus : char;
fakturhapus : string[13];
I,JumlahRecord : integer;
ketemu : boolean;
FakturCari : string[8];
Pilihan,br : integer;
Procedure Tambah_Data;
begin
Assign (FilePenjualan, 'Jual.dat');
{$I-}
Reset (FilePenjualan);
{$I+}
if IOResult <> 0 then
rewrite (FilePenjualan);
clrscr;
seek (FilePenjualan, FileSize(FilePenjualan));
Lagi := 'Y';
while upcase(Lagi) = 'Y' do
begin
clrscr;
with RecordPenjualan do
begin
gotoxy(11,4);writeln('Penjualan Komputer PT. De Naldi');
gotoxy(11,5);writeln('================================');
gotoxy(5,7);write ('No. Faktur : ');readln(NoFaktur);
gotoxy(5,8);write ('Jenis Paket Komputer [A/B/C/D] : ');readln(jnsPkt);
gotoxy(5,9);write ('Harga PerPaket : Rp. ');readln(hrgPkt);
gotoxy(5,10);write ('Jumlah Paket Pesanan : ');readln(jmlPkt);
Pembayaran := HrgPkt * jmlPkt;
If (JnsPkt = 'A') and (JmlPkt < 4) then
diskon := 0
else
If (JnsPkt = 'A') and (JmlPkt >= 4) then
diskon := 0.05 * Pembayaran
else
If (JnsPkt = 'B') and (JmlPkt < 3) then
diskon := 0
else
If (JnsPkt = 'B') and (JmlPkt >= 3) then
diskon := 0.05 * Pembayaran
else
If (JnsPkt = 'C') and (JmlPkt < 2) then
diskon := 0
else
If (JnsPkt = 'C') and (JmlPkt >= 2) then
diskon := 0.05 * Pembayaran
else
If JnsPkt = 'D' then
diskon := 0.05 * Pembayaran;
TotBayar := Pembayaran - diskon;
gotoxy(5,11);write ('Pembayaran : Rp.',Pembayaran:8:0);
gotoxy(5,12);write ('diskon : Rp.',diskon:8:0);
gotoxy(5,13);write ('Total Pembayaran : Rp.',totBayar:8:0);
end;
write (FilePenjualan, RecordPenjualan);
gotoxy (5,15);write('Ada data lagi [Y/T] ? : ');readln(lagi);
end;
close (FilePenjualan);
end;
Procedure Tmp_Semua_Data;
begin
Assign (FilePenjualan, 'Jual.dat');
Reset (FilePenjualan);
clrscr;
gotoxy(5,2);writeln (' PENJUALAN KOMPUTER PERPAKET PT.De Naldi ');
gotoxy(5,3);writeln;
gotoxy(5,4);writeln ('|======|===========|========|========|==========|=======|==========|');
gotoxy(5,5);writeln ('| No. |Jenis Paket| Harga |Jumlah |Pembayaran| Diskon| Total |');
gotoxy(5,6);writeln ('|Faktur| Penjualan |Perpaket| Paket | Rp. | 5 % |Pembayaran|');
gotoxy(5,7);writeln ('| | [A/B/C/D] | Rp. |Pesanan | | Rp. | Rp. |');
gotoxy(5,8);writeln ('|======|===========|========|========|==========|=======|==========|');
{ 123456 12345678901 12345678 12345678 1234567890 1234567 1234567890 }
while not EOF (FilePenjualan) do
begin
br := br + 1;
read (FilePenjualan, RecordPenjualan);
with RecordPenjualan do
begin
gotoxy(5,br+8);write ('|',nofaktur:6,'|',jnspkt:11,'|',hrgpkt:8:0,'|');
write (jmlpkt:8,'|',Pembayaran:10:0,'|',diskon:7:0,'|',totbayar:10:0,'|');
gotoxy(5,br+9);writeln ('|======|===========|========|========|==========|=======|==========|');
end;
end;
close (FilePenjualan);
repeat until keypressed;
end;
Procedure Tmp_Tertentu;
begin
Assign (FilePenjualan,'Jual.dat');
{$I-}
Reset (FilePenjualan);
{$I+}
if IOResult <> 0 then
writeln ('File tidak ada !');
JumlahRecord := Filesize (FilePenjualan);
Lagi := 'Y';
while upcase (Lagi) = 'Y' do
begin
ketemu := false;
clrscr;
gotoxy(15,5);write ('No. Faktur yang akan dicari : ');readln(FakturCari);
writeln;
for I := 1 to JumlahRecord do
begin
seek (FilePenjualan,I-1);
read (FilePenjualan, RecordPenjualan);
if RecordPenjualan.nofaktur = FakturCari then
begin
ketemu := true;
gotoxy(10,7);writeln ('Jenis Paket Penjualan [A/B/C/D] : ',RecordPenjualan.JnsPkt);
gotoxy(10,8);writeln ('Harga Perpaket : Rp. ',RecordPenjualan.HrgPkt:8:0);
gotoxy(10,9);writeln ('Jumlah Paket Pesanan : ',RecordPenjualan.JmlPkt);
gotoxy(10,10);writeln ('Pembayaran : Rp. ',RecordPenjualan.Pembayaran:8:0);
gotoxy(10,11);writeln ('Diskon 10 % : Rp. ',RecordPenjualan.Diskon:8:0);
gotoxy(10,12);writeln ('Total Pembayaran : Rp. ',RecordPenjualan.TotBayar:8:0);
end;
end;
if not ketemu then
begin
gotoxy(15,7);writeln ('NO. FAKTUR YANG DICARI TIDAK DITEMUKAN');
end;
gotoxy(10,14);write ('Cari No. Faktur yang lain [Y/T] ? : ');readln(Lagi);
end;
close (FilePenjualan);
end;
Procedure Koreksi_Data;
begin
Assign (FilePenjualan, 'Jual.dat');
{$I-}
Reset (FilePenjualan);
{$I+}
if IOResult <> 0 then
writeln ('FILE TIDAK ADA!!!!');
JumlahRecord := Filesize (FilePenjualan);
Lagi := 'Y';
while upcase(Lagi) = 'Y' do
begin
ketemu := false;
clrscr;
gotoxy(20,10);write ('No. Faktur yang dicari : ');readln(FakturCari);
writeln;
for I:=1 to jumlahrecord do
begin
seek (FilePenjualan, I-1);
read (FilePenjualan, RecordPenjualan);
if FakturCari = RecordPenjualan.nofaktur then
begin
with RecordPenjualan do
begin
ketemu := true;
clrscr;
gotoxy(10,5);writeln ('Jenis Paket Penjualan [A/B/C/D] : ',JnsPkt);
gotoxy(10,6);write ('Koreksinya : ');readln(JnsPkt);
gotoxy(10,8);writeln ('Harga Perpaket :',HrgPkt:8:0);
gotoxy(10,9);write ('Koreksinya : ');readln(HrgPkt);
gotoxy(10,11);writeln ('Jumlah Paket Pesanan : ',JmlPkt);
gotoxy(10,12);write ('Koreksinya : ');readln(jmlpkt);
Pembayaran := HrgPkt * jmlPkt;
If (JnsPkt = 'A') and (JmlPkt < 4) then
diskon := 0
else
If (JnsPkt = 'A') and (JmlPkt >= 4) then
diskon := 0.1 * Pembayaran
else
If (JnsPkt = 'B') and (JmlPkt < 3) then
diskon := 0
else
If (JnsPkt = 'B') and (JmlPkt >= 3) then
diskon := 0.1 * Pembayaran
else
If (JnsPkt = 'C') and (JmlPkt < 2) then
diskon := 0
else
If (JnsPkt = 'C') and (JmlPkt >= 2) then
diskon := 0.1 * Pembayaran
else
If JnsPkt = 'D' then
diskon := 0.1 * Pembayaran;
TotBayar := Pembayaran - diskon;
gotoxy(10,13);write ('Koreksi Pembayaran : ',pembayaran:8:0);
gotoxy(10,14);write ('Koreksi Diskon : ',diskon:8:0);
gotoxy(10,15);write ('Koreksi Total Pembayaran : ',totbayar:8:0);
end;
end;
seek (FilePenjualan,I-1);
write (FilePenjualan, RecordPenjualan);
end;
if not ketemu then
begin
gotoxy(20,11);writeln ('NO. FAKTUR YANG DICARI TIDAK ADA!!!');
end;
gotoxy(10,17);write ('Ingin Koreksi Lagi [Y/T] ? : ');readln(Lagi);
end;
close (FilePenjualan);
end;
Procedure Hapus_data;
begin
Assign (FilePenjualan, 'Jual.dat');
{$I-}
Reset (FilePenjualan);
{#$I+}
if IOResult <> 0 then
writeln ('File Tidak Ada');
JumlahRecord := FileSize (FilePenjualan);
Lagi := 'Y';
while upcase(Lagi) = 'Y' do
begin
clrscr;
ketemu := false;
gotoxy(30,5);writeln ('Menghapus Data');
gotoxy(30,6);writeln ('--------------');
gotoxy(25,8);write ('No. Faktur yang akan dihapus : ');readln(fakturhapus);
for I:=1 to JumlahRecord do
begin
seek (FilePenjualan,I-1);
read (FilePenjualan, RecordPenjualan);
if RecordPenjualan.nofaktur = fakturHapus then
begin
with RecordPenjualan do
begin
ketemu := true;
gotoxy(20,10);writeln ('Jenis Paket Komputer [A/B/C/D] : ',jnspkt);
gotoxy(20,11);writeln ('Harga Perpaket : ',hrgpkt:8:0);
gotoxy(20,12);writeln ('Jumlah Paket Pesanan : ',jmlpkt);
gotoxy(20,13);writeln ('Pembayaran : ',pembayaran:8:0);
gotoxy(20,14);writeln ('Diskon : ',diskon:8:0);
gotoxy(20,15);writeln ('Total Pembayaran : ',totbayar:8:0);
end;
writeln;
gotoxy(20,17);write ('Yakin akan dihapus [Y/T]? : ');readln(Hapus);
if upcase(hapus) = 'Y' then
begin
with RecordPenjualan do
begin
clrscr;
gotoxy(20,8);writeln ('Ket : diisi kosong');
gotoxy(20,10);write ('No. Faktur : ');readln(nofaktur);
gotoxy(20,11);write ('Jenis Paket Kompter [A/B/C/D] : ');readln(jnspkt);
gotoxy(20,12);write ('Harga Perpaket : ');readln(hrgpkt);
gotoxy(20,13);write ('Jumlah Paket Pesanan : ');readln(jmlpkt);
gotoxy(20,14);write ('Pembayaran : ');readln(pembayaran);
gotoxy(20,15);write ('Diskon : ');readln(Diskon);
gotoxy(20,16);write ('Total Pembayaran : ');readln(totbayar);
end;
end;
seek (FilePenjualan, I-1);
write (FilePenjualan, RecordPenjualan);
end;
if not ketemu then
begin
gotoxy(25,10);writeln ('Data yang dicari tidak ada!');
end;
end;
gotoxy(20,17);write ('Ada data lagi yang akan dihapus [Y/T]? : ');readln(lagi);
end;
close (FilePenjualan);
end;
{Program Utama}
begin
pilihan := 6;
while Pilihan <> 7 do
begin
clrscr;
gotoxy(20,5); writeln ('MENU PILIHAN');
gotoxy(20,6); writeln ('============');
gotoxy(15,8);writeln ('1. TAMBAH DATA.');
gotoxy(15,9);writeln ('2. TAMPIL SEMUA DATA.');
gotoxy(15,10);writeln ('3. TAMPIL DATA TERTENTU.');
gotoxy(15,11);writeln ('4. KOREKSI DATA.');
gotoxy(15,12);writeln ('5. HAPUS DATA.');
gotoxy(15,13);writeln ('6. SELESAI.');
gotoxy(15,15);write ('MASUKKAN PILIHAN ANDA [1/2/3/4/5/6] ? : ');
gotoxy(55,15);readln(Pilihan);
if Pilihan = 1 then
Tambah_Data
else
if Pilihan = 2 then
Tmp_Semua_Data
else
if Pilihan = 3 then
Tmp_Tertentu
else
if Pilihan = 4 then
Koreksi_Data
else
if Pilihan = 5 then
Hapus_data
else
exit;
end;
end.

mohon penjelasan syntaxnya dong
BalasHapus