Tuesday, June 2, 2009

[DolpHo] Tugas Pointer Pulsa


Uses crt;

type
p_pulsa = ^pulsa;
pulsa = record
nohp:string[15];
tgl,produk,jenis,hrg,hrgdasar,dep:string[20];
nama,ket:String[30];
next : p_pulsa;
end;
Var
fpulsadb : text;
fpulsadb2 : text;
huruf : string[100];
baris,kolom : integer;
i : integer;
head,tail,p_temp:p_pulsa;
input,input2:char;
label menu,Selesai;

{-----------Menambahkan data Record---------------}

procedure TambahData ();
Begin
clrscr;
assign(fpulsadb,'DataTrxP.txt');
append(fpulsadb);
assign(fpulsadb2,'DataTrxP2.txt');
append(fpulsadb2);
p_temp:=head;
with p_temp^ do
begin
write('Tanggal : '); Readln(tgl);
write(fpulsadb,tgl,':');
write('No.HP : '); Readln(nohp);
write(fpulsadb,nohp,':');
write('Produk : '); Readln(produk);
write(fpulsadb,produk,':');
write('Jenis Voucher :'); Readln(jenis);
write(fpulsadb,Jenis,':');
write('Harga Jual : '); Readln(hrg);
writeln(fpulsadb,hrg,':');
write('Harga Dasar : '); Readln(hrgdasar);
write(fpulsadb2,hrgdasar,':');
write('Sisa Deposit/Stock : '); Readln(dep);
write(fpulsadb2,dep,':');
write('Nama : '); Readln(nama);
write(fpulsadb2,nama,':');
write('keterangan : '); Readln(ket);
writeln(fpulsadb2,ket,':');
writeln('');
p_temp:=p_temp^.next;
end;
close(fpulsadb);
close(fpulsadb2);
end;

{-----------Menampilkan data dari Record---------------}

procedure TampilRecord ();
begin
if head<>nil then
begin
p_temp:=head;
for i := 1 to 5 do
begin
writeln('Tanggal : ',p_temp^.tgl);
writeln('Nomor HP : ',p_temp^.nohp);
writeln('Produk : ',p_temp^.produk);
writeln('Jenis Voucher : ',p_temp^.jenis);
writeln('Harga Jual : ',p_temp^.hrg);
writeln('Harga Dasar : ',p_temp^.hrgdasar);
writeln('Sisa Deposit/Stock: ',p_temp^.dep);
writeln('Nama : ',p_temp^.nama);
writeln('Keterangan : ',p_temp^.ket);
writeln('');
p_temp:=p_temp^.next;
end;
end else writeln('LinkList masih Kosong');
end;

{----------Mengambil data dari Record-------------}

procedure BacaRecord();
begin
assign(fpulsadb,'DataTrxP.txt');
reset(fpulsadb);
assign(fpulsadb2,'DataTrxP2.txt');
reset(fpulsadb2);
repeat
readln(fpulsadb,huruf);
new(p_temp);
for kolom := 1 to 9 do
case kolom of
1 : begin
i:=1;
repeat
p_temp^.tgl:=p_temp^.tgl+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
2 : begin
i:=i+1;
repeat
p_temp^.nohp:=p_temp^.nohp+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
3 : begin
i:=i+1;
repeat
p_temp^.produk:=p_temp^.produk+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
4 : begin
i:=i+1;
repeat
p_temp^.jenis:=p_temp^.jenis+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
5 : begin
i:=i+1;
repeat
p_temp^.hrg:=p_temp^.hrg+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
6 : begin
i:=1;
readln(fpulsadb2,huruf);
repeat
p_temp^.hrgdasar:=p_temp^.hrgdasar+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
7 : begin
i:=i+1;
repeat
p_temp^.dep:=p_temp^.dep+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
8 : begin
i:=i+1;
repeat
p_temp^.nama:=p_temp^.nama+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
9 : begin
i:=i+1;
repeat
p_temp^.ket:=p_temp^.ket+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
end;
if head=nil then head:=p_temp
else tail^.next:=p_temp;
tail:=p_temp;
tail^.next:=nil;
if seekeof(fpulsadb) then break;
until eof (fpulsadb);
close(fpulsadb);
close(fpulsadb2);
end;

{-----------Program---------------}

BEGIN
clrscr;
head:=nil;
huruf:='';
menu:;
clrscr;
writeln('==================(Kios Pulsa)=================');
writeln('===>>>| 1. Tambah record kedalam daftar.|<<<===');
writeln('===>>>| 2. Tampilkan Record. |<<<===');
writeln('===>>>| 3. Ambil records dari file. |<<<===');
writeln('===>>>| 4. Selesai |<<<===');
writeln('===============================================');
write('Pilihan : ');
input:=readkey;
case input of
'1' : TambahData;
'2' : TampilRecord;
'3' : BacaRecord;
'4' : goto Selesai;
end;
repeat
writeln;
write('Kembali ke menu Utama (y/t)');
input2:=upcase(readkey);
if input2='Y' then goto menu;
if input2='Y' then goto Selesai;
until input2 in['Y','T'];
Selesai:;
END.

No comments:

Post a Comment