-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathF7.pas
More file actions
82 lines (72 loc) · 2.34 KB
/
F7.pas
File metadata and controls
82 lines (72 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Nama File: F7.pas
// Deskripsi File: Unit prosedur jual olahan untuk program utama Engi's Kitchen
// Tanggal terakhir diubah: 22/04/2018
unit F7;
interface
uses uDef,sysutils,F1;//untuk ngambil data
{ Deklarasi Fungsi/Prosedur }
procedure jualolahan(olah:Abahanolahan;var olahb:Ainventori;var c : Asimulasi; var NInvBO, NBahanO, NomorSim,aksi: Integer);
{Prosedur akan menerima masukan nama bahan yang ingin dijual,dan akan memvalidas,lalu melaukan perubahan pada inventori dan juga mengubah dat simulasi}
{I.S menerima sebuah string berua olahan yang akan dijual}
{F.S menambah penghasilan}
implementation
{ Implementasi Fungsi/Prosedur }
procedure jualolahan(olah:Abahanolahan;var olahb:Ainventori;var c : Asimulasi; var NInvBO, NBahanO, NomorSim,aksi: Integer);
{Prosedur akan menerima masukan nama bahan yang ingin dijual,dan akan memvalidas,lalu melaukan perubahan pada inventori dan juga mengubah dat simulasi}
{I.S menerima sebuah string berua olahan yang akan dijual}
{F.S menambah penghasilan}
{KAMUS}
var
nama:string;
ketemu,ketemu2:boolean;
i,j:integer;
{ALGORITMA}
begin
repeat//validasi
i:=1;
write('Nama bahan yang ingin dijual: ' );
readln(nama);
ketemu:=False;
while((ketemu = False) and (i<=NInvBO)) do
begin
if ((LowerCase(nama)=LowerCase(olahb[i].nama))) then
begin
ketemu:=True;
end else
begin
i:=i+1;
end;
end;
if (ketemu=False) then writeln('Nama tidak terdaftar');
until (ketemu =True);
ketemu:=False;
i:=1;
while((ketemu=False)and(i<=NInvBO)) do
begin
if (( olahb[i].jumlah >=1) and (LowerCase(nama)=LowerCase(olahb[i].nama))) then
begin
ketemu:=True;
end else i:=i+1;
end;
ketemu2:=False;
j:=1;
while((ketemu2 = False) and (j<=NBahanO))do//cuman cari j
begin
if(LowerCase(nama) = LowerCase(olah[j].nama)) then
begin
ketemu2:=True;
end;
j:=j+1;
end;
if((ketemu = True)and(c[NomorSim].tEnergi>0)) then//melakukan perubahan data
begin
olahb[i].jumlah:=olahb[i].jumlah-1;
c[NomorSim].tBOlahanDijual:=c[NomorSim].tBOlahanDijual+1;
c[NomorSim].tEnergi:=c[NomorSim].tEnergi-1;
c[NomorSim].tPemasukan:=c[NomorSim].tPemasukan+olah[j-1].harga;
c[NomorSim].tUang:=c[NomorSim].tUang+olah[j-1].harga;
aksi:=aksi+1;
writeln('Dapat dijual');
end else writeln('Tidak bisa dijual');
end;
end.