Professional Documents
Culture Documents
Tugas Algoritma Dan Pemrograman PDF
Tugas Algoritma Dan Pemrograman PDF
Diajukan untuk memenuhi salah satu tugas mata kuliah Algoritma dan Pemrograman
Dosen:
Andri Heryandi, M.T.
Disusun Oleh:
NIM / Nama : 10115352 / Danis Alifian Nur Rizki
10115356 / Satria Pradika
Kelas : IF-6
uses crt,sysutils;
const
max = 1000;
type
dt_transaksi = record
berat,total : real;
dt_layanan = record
biaya : real;
var
dry : TArraylayanan;
trans : TArraytrans;
database : data;
database1 : data1;
recdry : dt_layanan;
rectrans : dt_transaksi;
kode,nama: string;
pilih, i : integer;
//funsi tanggal
function tanggal:string;
begin
tanggal:=datetostr(now);
end;
procedure input_layanan;
var
yn : char;
begin
clrscr;
assign(database1,'save_layanan.dat');
{$I-}
reset(database1);
{$I-}
i := filesize(database1);
repeat
gotoxy(6,3);
write('===============================================================
=======');
gotoxy(6,5);
write('===============================================================
=======');
gotoxy(6,6); write('| Id :
|');
gotoxy(6,7); write('|
|');
gotoxy(6,9); write('|
|');
gotoxy(6,10);write('| Biaya/kg :
|');
gotoxy(6,11); write('--------------------------------------------
--------------------------');
with recdry do
begin
gotoxy(23,6);readln(dry[i].no);
gotoxy(23,8);readln(dry[i].nama_layanan);
gotoxy(23,10);readln(dry[i].biaya);
seek(database1,i);
write(database1,dry[i]);
i:=i+1;
end;
gotoxy(1,18);clrscr;
close(database1);
end;
procedure tampil_daftar_layanan;
var
i : Integer;
begin
assign(database1,'save_layanan.dat');
reset(database1);
gotoxy(54,3); write('=======================');
gotoxy(54,5); write('=======================');
gotoxy(54,7); write('|----+----------------|');
with recdry do
begin
for i := 1 to filesize(database1) do
begin
seek((database1),i-1);
read((database1),recdry);
gotoxy(54,7+i); write('| | |');
gotoxy(54,8+i); write('=======================');
gotoxy(57,7+i); write(no);
gotoxy(61,7+i); write(nama_layanan);
end;
end;
close(database1);
end;
var
ketemu:boolean;
i : integer;
begin
assign(database1,'save_layanan.dat');
reset(database1);
i:=1;
ketemu:=false;
begin
read((database1),dry[i]);
ketemu:=true
else
i:=i+1;
end;
if (ketemu) then
begin
biaya_lyn := dry[i].biaya;
end ;
close(database1);
readln;
end;
procedure input_transaksi;
var
yn : char;
i : integer;
biaya,brt : real;
no_l : String;
begin
clrscr;
assign(database,'save.dat');
{$I-}
reset(database);
{$I-}
rewrite (database);
i := filesize(database);
repeat
tampil_daftar_layanan;
gotoxy(5,3);
write('=============================================');
gotoxy(5,5);
write('=============================================');
gotoxy(5,7); write('|
|');
gotoxy(5,9); write('|
|');
gotoxy(5,13); write('|
|');
gotoxy(5,15); write('|
|');
gotoxy(5,16); write('--------------------------------------------
|');
gotoxy(5,18); write('|
|');
gotoxy(5,20);
write('=============================================');
with rectrans do
begin
gotoxy(24,6);readln(trans[i].no);
gotoxy(24,8);readln(trans[i].nama);
gotoxy(24,10); write(tanggal);trans[i].tgl:=tanggal;
gotoxy(24,12);readln(trans[i].berat);
brt:= trans[i].berat;
gotoxy(24,14);read(no_l);
cari_lyn(no_l,biaya);
gotoxy(28,17);write(biaya:0:2);
gotoxy(28,19);write(total:0:2);
trans[i].total:=total;
seek(database,i);
write(database,trans[i]);
i:=i+1;
end;
gotoxy(1,18);clrscr;
close(database);
end;
procedure tampil_layanan;
begin
clrscr;
assign(database1,'save_layanan.dat');
reset(database1);
rewrite(database);
write('===============================================================
=================');
write('===============================================================
=================');
write('|----+------+---------------------------------------------
----+----------------|');
write('| | |
| |');
write('|---------------------------------------------------------
---------------------|');
with recdry do
begin
begin
seek((database1),i-1);
read((database1),recdry);
gotoxy(1,4+2*i);write('| | |
| |');
gotoxy(1,5+2*i);write('|---------------------------
---------------------------------------------------|');
gotoxy(3,4+2*i);write(i);
gotoxy(9,4+2*i);write(no);
gotoxy(15,4+2*i);write(nama_layanan);
gotoxy(66,4+2*i);write('Rp. ',biaya:0:2);
end;
end;
close(database1);
writeln;writeln;
end;
var
recdry:dt_layanan;
i, n, idx:integer;
biaya_baru:real;
begin
tampil_layanan;
writeln;writeln;
assign(database1, 'save_layanan.dat');
reset(database1);
n:=0;
begin
read(database1,recdry);
n:=n+1;
dry[n]:=recdry;
end;
close(database1);
repeat
readln(idx);
writeln;
begin
//begin
//dry[i]:=dry[i+1];
//n:=n-1;
writeln('Id : ',dry[idx].no);
dry[idx].biaya:=biaya_baru;
readln;
//end;
end;
assign (database1,'save_layanan.dat');
rewrite(database1);
for i:= 1 to n do
write(database1,dry[i]);
close(database1);
end;
var
idxhapus, i, n :integer;
recdry: dt_layanan;
begin
assign(database1, 'save_layanan.dat');
reset(database1);
n:=0;
begin
read(database1,recdry);
n:=n+1;
dry[n]:=recdry;
end;
close(database1);
tampil_layanan;
writeln;
repeat
readln(idxhapus);
begin
dry[i]:=dry[i+1];
n:=n-1;
readln;
end;
assign (database1,'save_layanan.dat');
rewrite(database1);
for i:= 1 to n do
write(database1,dry[i]);
close(database1);
end;
var
n:integer;
temp,rectrans:dt_transaksi;
j:integer;
begin
assign(database,'save.dat');
reset(database);
n:=0;
begin
read(database,rectrans);
n:= n+1;
trans[n]:=rectrans
end;
close(database);
for i := 1 to n do
begin
begin
temp:=trans[j];
trans[j]:=trans[j-1];
trans[j-1]:=temp;
end;
end;
assign (database,'save.dat');
rewrite(database);
for i := 1 to n do
write(database,trans[i]);
close(database);
end;
var
n:integer;
temp,rectrans:dt_transaksi;
j:integer;
begin
assign(database,'save.dat');
reset(database);
n:=0;
begin
read(database,rectrans);
n:= n+1;
trans[n]:=rectrans
end;
close(database);
for i := 1 to n do
for j := n downto (i+1) do
begin
begin
temp:=trans[j];
trans[j]:=trans[j-1];
trans[j-1]:=temp;
end;
end;
assign (database,'save.dat');
rewrite(database);
for i := 1 to n do
write(database,trans[i]);
close(database);
end;
var
n:integer;
temp,rectrans:dt_transaksi;
j:integer;
begin
assign(database,'save.dat');
reset(database);
n:=0;
begin
read(database,rectrans);
n:= n+1;
trans[n]:=rectrans
end;
close(database);
for i := 1 to n do
begin
begin
temp:=trans[j];
trans[j]:=trans[j-1];
trans[j-1]:=temp;
end;
end;
assign (database,'save.dat');
rewrite(database);
for i := 1 to n do
write(database,trans[i]);
close(database);
end;
procedure daftar_transaksi_by_nama;
begin
clrscr;
sort_by_nama(trans,database);
assign(database,'save.dat');
reset(database);
write('===============================================================
=================');
write('|------+------------------------------+------------+------
-+-------------------|');
write('| | | |
| |');
write('|---------------------------------------------------------
---------------------|');
with rectrans do
begin
begin
seek((database),i-1);
read((database),rectrans);
gotoxy(1,4+2*i);write('| |
| | | |');
gotoxy(1,5+2*i);write('|---------------------------
---------------------------------------------------|');
gotoxy(3,4+2*i);write(no);
gotoxy(10,4+2*i);write(nama);
gotoxy(41,4+2*i);write(tgl);
gotoxy(54,4+2*i);write(berat:0:1);
gotoxy(62,4+2*i);write('Rp. ',total:0:2);
end;
end;
close(database);
writeln;writeln;
readln;
end;
procedure daftar_transaksi_by_tanggal;
begin
clrscr;
sort_by_tanggal(trans,database);
assign(database,'save.dat');
reset(database);
write('===============================================================
=================');
write('===============================================================
=================');
write('|------+------------------------------+------------+------
-+-------------------|');
write('| | | |
| |');
write('|---------------------------------------------------------
---------------------|');
with rectrans do
begin
begin
seek((database),i-1);
read((database),rectrans);
gotoxy(1,4+2*i);write('| |
| | | |');
gotoxy(1,5+2*i);write('|---------------------------
---------------------------------------------------|');
gotoxy(3,4+2*i);write(no);
gotoxy(10,4+2*i);write(nama);
gotoxy(41,4+2*i);write(tgl);
gotoxy(54,4+2*i);write(berat:0:1);
gotoxy(62,4+2*i);write('Rp. ',total:0:2);
end;
end;
close(database);
writeln;writeln;
readln;
end;
procedure daftar_transaksi_by_berat;
begin
clrscr;
sort_by_berat(trans,database);
assign(database,'save.dat');
reset(database);
write('===============================================================
=================');
write('===============================================================
=================');
write('|------+------------------------------+------------+------
-+-------------------|');
write('| | | |
| |');
write('|---------------------------------------------------------
---------------------|');
with rectrans do
begin
begin
seek((database),i-1);
read((database),rectrans);
gotoxy(1,4+2*i);write('| |
| | | |');
gotoxy(1,5+2*i);write('|---------------------------
---------------------------------------------------|');
gotoxy(3,4+2*i);write(no);
gotoxy(10,4+2*i);write(nama);
gotoxy(41,4+2*i);write(tgl);
gotoxy(54,4+2*i);write(berat:0:1);
gotoxy(62,4+2*i);write('Rp. ',total:0:2);
end;
end;
close(database);
writeln;writeln;
readln;
end;
procedure daftar_transaksi;
begin
clrscr;
assign(database,'save.dat');
reset(database);
write('===============================================================
=================');
write('===============================================================
=================');
write('|------+-----+------------------------+------------+------
-+-------------------|');
write('| | | | |
| |');
write('|---------------------------------------------------------
---------------------|');
with rectrans do
begin
begin
seek((database),i-1);
read((database),rectrans);
gotoxy(1,4+2*i);write('| | |
| | | |');
gotoxy(1,5+2*i);write('|---------------------------
---------------------------------------------------|');
gotoxy(3,4+2*i);write(i);
gotoxy(10,4+2*i);write(no);
gotoxy(16,4+2*i);write(nama);
gotoxy(41,4+2*i);write(tgl);
gotoxy(54,4+2*i);write(berat:0:1);
gotoxy(62,4+2*i);write('Rp. ',total:0:2);
end;
end;
close(database);
writeln;writeln;
//readln;
end;
var
idxhapus, i, n :integer;
rectrans: dt_transaksi;
begin
assign(database, 'save.dat');
reset(database);
n:=0;
read(database,rectrans);
n:=n+1;
trans[n]:=rectrans;
end;
close(database);
daftar_transaksi;
repeat
readln(idxhapus);
begin
trans[i]:=trans[i+1];
n:=n-1;
readln;
end;
assign (database,'save.dat');
rewrite(database);
for i:= 1 to n do
write(database,trans[i]);
close(database);
end;
procedure cari_no_pelanggan;
var
no:string;
ketemu:boolean;
begin
clrscr;
assign(database,'save.dat');
reset(database);
gotoxy(1,3);write('===================================================
=============================');
gotoxy(1,4);write('| Data
Laundry |');
gotoxy(1,5);write('===================================================
============================');
gotoxy(1,7);write('|---------------+--------------------+--------
-----+-----------+---------------|');
gotoxy(1,8);write('| | |
| | |');
gotoxy(1,9);write('----------------------------------------------
----------------------------------');
gotoxy(37,1);readln(no);no:=upcase(no);
i:=1;
ketemu:=false;
begin
read((database),trans[i]);
if trans[i].no = no then
ketemu:=true
else
i:=i+1;
end;
//validasi ditemukan
if (ketemu) then
begin
gotoxy(3,8);writeln(trans[i].no);
gotoxy(19,8);writeln(trans[i].nama);
gotoxy(40,8); writeln(trans[i].tgl);
gotoxy(57,8);writeln(trans[i].berat:0:1);
gotoxy(66,8);write('Rp. ',trans[i].total:0:2);
end ;
if (not ketemu)then
begin
end;
close(database);
readln;
end;
procedure cari_nama;
var
cari:string;
ketemu:boolean;
begin
clrscr;
assign(database,'save.dat');
reset(database);
gotoxy(1,3);write('===================================================
=============================');
gotoxy(1,4);write('| Data
Laundry |');
gotoxy(1,5);write('===================================================
============================');
gotoxy(1,7);write('|---------------+--------------------+--------
-----+-----------+---------------|');
gotoxy(1,8);write('| | |
| | |');
gotoxy(1,9);write('----------------------------------------------
----------------------------------');
gotoxy(39,1);readln(cari);cari:=upcase(cari);
i:=1;
ketemu:=false;
begin
read((database),trans[i]);
ketemu:=true
else
i:=i+1;
end;
//validasi ditemukan
if (ketemu) then
begin
gotoxy(3,8);writeln(trans[i].no);
gotoxy(19,8);writeln(trans[i].nama);
gotoxy(40,8); writeln(trans[i].tgl);
gotoxy(57,8);writeln(trans[i].berat:0:1);
gotoxy(66,8);write('Rp. ',trans[i].total:0:2);
end ;
if (not ketemu)then
begin
end;
close(database);
readln;
end;
procedure tampil_transaksi;
begin
repeat
clrscr;
gotoxy(18,6);
write('=================================================');
gotoxy(18,8);
write('=================================================');
gotoxy(18,10);write('|
|');
gotoxy(18,12);write('|
|');
gotoxy(18,14);write('|
|');
gotoxy(18,16);write('|
|');
gotoxy(18,18);write('-------------------------------------------
--');
gotoxy(18,20);write('-------------------------------------------
--');
gotoxy(42,19); readln(pilih);
begin
gotoxy(13,23); textcolor(red);
readln;
gotoxy(13,20); clreol;
end;
case (pilih) of
1 : begin
clrscr;
daftar_transaksi_by_nama;
end;
2 : begin
daftar_transaksi_by_tanggal;
end;
3 : begin
daftar_transaksi_by_berat;
end;
4 : begin
hapus_transaksi(trans,database);
end;
end; //endcase
until(pilih = 0);
end;
procedure menu_layanan;
begin
repeat
clrscr;
gotoxy(18,6);
write('=============================================');
gotoxy(18,10);write('|
|');
gotoxy(18,12);write('|
|');
gotoxy(18,14);write('|
|');
gotoxy(18,16);write('|
|');
gotoxy(18,18);write('-------------------------------------------
--');
gotoxy(18,20);write('-------------------------------------------
--');
gotoxy(42,19); readln(pilih);
begin
gotoxy(13,20); textcolor(red);
readln;
gotoxy(13,20); clreol;
end;
case (pilih) of
1 : begin
clrscr;
input_layanan;
end;
2 : begin
clrscr;
ubah_harga_layanan(dry,database1);
end;
3 : begin
clrscr;
hapus_layanan(dry,database1);
end;
4 : begin
clrscr;
tampil_layanan;
readln;
end;
end; //endcase
until(pilih = 0);
end;
begin
repeat
clrscr;
gotoxy(14,6);
write('====================================================');
gotoxy(14,8);
write('====================================================');
gotoxy(14,10);write('|
|');
gotoxy(14,14);write('-------------------------------------------
---------');
gotoxy(14,16);write('-------------------------------------------
---------');
gotoxy(38,15); readln(pilih);
begin
gotoxy(13,20); textcolor(red);
readln;
gotoxy(13,20); clreol;
end;
case (pilih) of
1 : begin
clrscr;
cari_no_pelanggan;
end;
2 : begin
clrscr;
cari_nama;
end;
3 : begin
end;
end; //endcase
until(pilih = 0);
end;
procedure menu_utama(var pilih:integer);
var
menu : integer;
begin
repeat
clrscr;
gotoxy(23,7); write('=================================');
gotoxy(23,9); write('=================================');
gotoxy(23,13);write('| |');
gotoxy(23,15);write('| |');
gotoxy(23,17);write('| |');
gotoxy(23,19);write('---------------------------------');
gotoxy(23,21);write('---------------------------------');
gotoxy(47,20); readln(menu);
begin
gotoxy(13,23); textcolor(red);
readln;
gotoxy(13,23); clreol;
end;
case (menu) of
1 : begin
clrscr;
input_transaksi;
end;
2 : begin
clrscr;
tampil_transaksi;
end;
3 : begin
clrscr;
menu_layanan;
end;
4 : begin
clrscr;
menu_cari(pilih);
end;
end; //endcase
until(menu = 0);
end;
procedure login;
begin
i := 0;
repeat
begin
begin
menu_utama(pilih);
i := 3;
//con := 1;
end
else
begin
clrscr;
i:=i+1;
if i=3 then
begin
//con :=0;
clrscr;
gotoxy(21,11);write('AKUN TERKUNCI');
readln;
end;
end;
end;
end;//endprocedure
begin
login;
end.
2 TESTING
• username: admin
• password: admin
• Gunakan username dan password di atas untuk masuk ke dalam sistem.
• Atur screen buffer size menjadi 80 x 25 agar tampilan sesuai dengan sistem.
2.1 Login
2.2 Menu Utama
b. Setelah dihapus
2.5 Menu Layanan
b. Setelah diedit
2.5.3 Hapus Data Layanan
a. Sebelum dihapus
b. Setelah dihapus
2.5.4 Tampil Data Layanan