You are on page 1of 43

TUGAS ALGORITMA DAN PEMROGRAMAN

CLEAN WASH LAUNDRY

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

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2019
1 SOURCE CODE
program TUGAS_UAS;

uses crt,sysutils;

const

max = 1000;

type

dt_transaksi = record

no, nama, tgl : string;

berat,total : real;

end; //end record

dt_layanan = record

no, nama_layanan: string[15];

biaya : real;

end; //end record

TArraytrans = array [1..max] of dt_transaksi;

TArraylayanan = array [1..max] of dt_layanan;

data = file of dt_transaksi;

data1 = file of dt_layanan;

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-}

if IOresult <> 0 then rewrite (database1);

i := filesize(database1);

repeat

gotoxy(6,3);
write('===============================================================
=======');

gotoxy(6,4); write('| INPUT DATA LAYANAN


|');

gotoxy(6,5);
write('===============================================================
=======');

gotoxy(6,6); write('| Id :
|');

gotoxy(6,7); write('|
|');

gotoxy(6,8); write('| Nama Layanan :


|');

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);

gotoxy(23,13);write('Data berhasil di simpan');

gotoxy(28,18);write('Masukkan lagi (Y/T) ?');


gotoxy(50,18);yn := readkey;

seek(database1,i);

write(database1,dry[i]);

i:=i+1;

end;

gotoxy(1,18);clrscr;

until (yn = 'T') or (yn = 't');

close(database1);

end;

procedure tampil_daftar_layanan;

var

i : Integer;

begin

assign(database1,'save_layanan.dat');

reset(database1);

gotoxy(54,3); write('=======================');

gotoxy(54,4); write('| LAYANAN |');

gotoxy(54,5); write('=======================');

gotoxy(54,6); write('| Id | Nama Layanan |');

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;

procedure cari_lyn(no_ln:String;var biaya_lyn:real);

var

ketemu:boolean;

i : integer;

begin

assign(database1,'save_layanan.dat');

reset(database1);

i:=1;

ketemu:=false;

while (not eof (database1)) and (not ketemu) do

begin

read((database1),dry[i]);

if dry[i].no = no_ln then

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-}

if IOresult <> 0 then

rewrite (database);

i := filesize(database);

repeat

tampil_daftar_layanan;

gotoxy(5,3);
write('=============================================');

gotoxy(5,4); write('| INPUT DATA TRANSAKSI


|');

gotoxy(5,5);
write('=============================================');

gotoxy(5,6); write('| Id Pelanggan :


|');

gotoxy(5,7); write('|
|');

gotoxy(5,8); write('| Nama Pelanggan :


|');

gotoxy(5,9); write('|
|');

gotoxy(5,10); write('| Tanggal Terima :


|');
gotoxy(5,11); write('|
|');

gotoxy(5,12); write('| Berat Cucian : Kg


|');

gotoxy(5,13); write('|
|');

gotoxy(5,14); write('| Layanan :


|');

gotoxy(5,15); write('|
|');

gotoxy(5,16); write('--------------------------------------------
|');

gotoxy(5,17); write('| Biaya/Kg : Rp.


|');

gotoxy(5,18); write('|
|');

gotoxy(5,19); write('| Total Bayar : Rp.


|');

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);

total:= biaya * brt;

gotoxy(28,17);write(biaya:0:2);

gotoxy(28,19);write(total:0:2);

trans[i].total:=total;

gotoxy(28,21);write('Data berhasil disimpan');

gotoxy(28,23);write('Masukkan lagi (Y/T) ?');


gotoxy(50,23);yn := readkey;

seek(database,i);

write(database,trans[i]);
i:=i+1;

end;

gotoxy(1,18);clrscr;

until (yn = 'T') or (yn = 't');

close(database);

end;

procedure tampil_layanan;

begin

clrscr;

assign(database1,'save_layanan.dat');

{$I-} //matikan pemeriksaan IO

reset(database1);

{$I+} //aktifkan pemeriksaan IO

if IOResult <> 0 then //jika pemeriksaan IO sebelumnya error

rewrite(database);

write('===============================================================
=================');

write('| Data Layanan


|');

write('===============================================================
=================');

write('| No | Id | Nama Layanan


| Biaya |');

write('|----+------+---------------------------------------------
----+----------------|');

write('| | |
| |');

write('|---------------------------------------------------------
---------------------|');

with recdry do

begin

for i := 1 to filesize (database1) do

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;

write('Tekan enter untuk melanjutkan');

end;

procedure ubah_harga_layanan(var dry:TArraylayanan; var


database1:data1);

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;

while not eof(database1) do

begin

read(database1,recdry);

n:=n+1;
dry[n]:=recdry;

end;

close(database1);

repeat

write('Ubah nomor data [0 : cancel], 1.. ',n,' : ');

readln(idx);

until (idx>=0) and (idx<=n);

writeln;

if idx <> 0 then

begin

//for i:= idx to n do

//begin

//dry[i]:=dry[i+1];

//n:=n-1;

writeln('Id : ',dry[idx].no);

writeln('Nama Layanan : ',dry[idx].nama_layanan);

writeln('Biaya Lama: ',dry[idx].biaya:0:2);

write('Masukkan Biaya baru : ');readln(biaya_baru);

dry[idx].biaya:=biaya_baru;

//writeln('Penghapusan data sukses. Tekan enter');

writeln('Biaya berhasil diperbarui');

readln;

//end;

end;

assign (database1,'save_layanan.dat');

rewrite(database1);

for i:= 1 to n do

write(database1,dry[i]);

close(database1);
end;

procedure hapus_layanan(var dry:TArraylayanan; var database1:data1);

var

idxhapus, i, n :integer;

recdry: dt_layanan;

begin

assign(database1, 'save_layanan.dat');

reset(database1);

n:=0;

while not eof(database1) do

begin

read(database1,recdry);

n:=n+1;

dry[n]:=recdry;

end;

close(database1);

tampil_layanan;

writeln;

repeat

write('Hapus nomor data [0 : cancel], 1.. ',n,' : ');

readln(idxhapus);

until (idxhapus>=0) and (idxhapus<=n);

if idxhapus <> 0 then

begin

for i:= idxhapus to n-1 do

dry[i]:=dry[i+1];

n:=n-1;

writeln('Penghapusan data sukses. Tekan enter');

readln;

end;
assign (database1,'save_layanan.dat');

rewrite(database1);

for i:= 1 to n do

write(database1,dry[i]);

close(database1);

end;

procedure sort_by_nama(var trans:TArraytrans; var database:data);

var

n:integer;

temp,rectrans:dt_transaksi;

j:integer;

begin

assign(database,'save.dat');

{$I-} //matikan pemeriksaan IO

reset(database);

{$I+} //aktifkan pemeriksaan IO

if IOResult <> 0 then //jika pemeriksaan IO sebelumnya error

rewrite(database); //maka buat file baru

n:=0;

while not eof (database) do

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

if(upcase(trans[j].nama) < upcase(trans[j-1].nama)) then

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 sort_by_tanggal(var trans:TArraytrans; var database:data);

var

n:integer;

temp,rectrans:dt_transaksi;

j:integer;

begin

assign(database,'save.dat');

{$I-} //matikan pemeriksaan IO

reset(database);

{$I+} //aktifkan pemeriksaan IO

if IOResult <> 0 then //jika pemeriksaan IO sebelumnya error

rewrite(database); //maka buat file baru

n:=0;

while not eof (database) do

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

if(trans[j].tgl > trans[j-1].tgl) then

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 sort_by_berat(var trans:TArraytrans; var database:data);

var

n:integer;

temp,rectrans:dt_transaksi;

j:integer;

begin

assign(database,'save.dat');

{$I-} //matikan pemeriksaan IO

reset(database);

{$I+} //aktifkan pemeriksaan IO

if IOResult <> 0 then //jika pemeriksaan IO sebelumnya error

rewrite(database); //maka buat file baru

n:=0;

while not eof (database) do

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

if(trans[j].berat > trans[j-1].berat) then

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('| DAFTAR TRANSAKSI TERURUT BERDASARKAN NAMA


(ASCENDING) |');
write('===============================================================
=================');

write('| ID | Nama Pelanggan | tanggal | Berat


| Total Bayar |');

write('|------+------------------------------+------------+------
-+-------------------|');

write('| | | |
| |');

write('|---------------------------------------------------------
---------------------|');

with rectrans do

begin

for i := 1 to filesize (database) do

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;

write('Tekan enter untuk melanjutkan');

readln;

end;

procedure daftar_transaksi_by_tanggal;
begin

clrscr;

sort_by_tanggal(trans,database);

assign(database,'save.dat');

reset(database);

write('===============================================================
=================');

write('| DAFTAR TRANSAKSI TERURUT BERDASARKAN TANGGAL


(DESCENDING) |');

write('===============================================================
=================');

write('| ID | Nama Pelanggan | tanggal | Berat


| Total Bayar |');

write('|------+------------------------------+------------+------
-+-------------------|');

write('| | | |
| |');

write('|---------------------------------------------------------
---------------------|');

with rectrans do

begin

for i := 1 to filesize (database) do

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;

write('Tekan enter untuk melanjutkan');

readln;

end;

procedure daftar_transaksi_by_berat;

begin

clrscr;

sort_by_berat(trans,database);

assign(database,'save.dat');

reset(database);

write('===============================================================
=================');

write('| DAFTAR TRANSAKSI TERURUT BERDASARKAN BERAT


(DESCENDING) |');

write('===============================================================
=================');

write('| ID | Nama Pelanggan | tanggal | Berat


| Total Bayar |');

write('|------+------------------------------+------------+------
-+-------------------|');

write('| | | |
| |');

write('|---------------------------------------------------------
---------------------|');

with rectrans do

begin

for i := 1 to filesize (database) do

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;

write('Tekan enter untuk melanjutkan');

readln;

end;

procedure daftar_transaksi;

begin

clrscr;

assign(database,'save.dat');

reset(database);

write('===============================================================
=================');

write('| DAFTAR TRANSAKSI


|');

write('===============================================================
=================');

write('| No | ID | Nama Pelanggan | tanggal | Berat


| Total Bayar |');

write('|------+-----+------------------------+------------+------
-+-------------------|');

write('| | | | |
| |');

write('|---------------------------------------------------------
---------------------|');
with rectrans do

begin

for i := 1 to filesize (database) do

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;

//write('Tekan enter untuk melanjutkan');

//readln;

end;

procedure hapus_transaksi(var trans:TArraytrans; var database:data);

var

idxhapus, i, n :integer;

rectrans: dt_transaksi;

begin

assign(database, 'save.dat');

reset(database);

n:=0;

while not eof(database) do


begin

read(database,rectrans);

n:=n+1;

trans[n]:=rectrans;

end;

close(database);

daftar_transaksi;

repeat

write('Hapus nomor data [0 : cancel], 1.. ',n,' : ');

readln(idxhapus);

until (idxhapus>=0) and (idxhapus<=n);

if idxhapus <> 0 then

begin

for i:= idxhapus to n-1 do

trans[i]:=trans[i+1];

n:=n-1;

writeln('Penghapusan data sukses. Tekan enter');

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,1);write('Masukkan ID Pelanggan yang dicari : ');

gotoxy(1,3);write('===================================================
=============================');

gotoxy(1,4);write('| Data
Laundry |');

gotoxy(1,5);write('===================================================
============================');

gotoxy(1,6);write('| ID Pelanggan | Nama Pelanggan |


Tanggal | Berat | Total Bayar |');

gotoxy(1,7);write('|---------------+--------------------+--------
-----+-----------+---------------|');

gotoxy(1,8);write('| | |
| | |');

gotoxy(1,9);write('----------------------------------------------
----------------------------------');

gotoxy(37,1);readln(no);no:=upcase(no);

i:=1;

ketemu:=false;

while (not eof (database)) and (not ketemu) do

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);

gotoxy(1,11);write('ID Pelanggan yang dicari ditemukan


!!');

end ;

//validasi data tidak ditemukan

if (not ketemu)then

begin

gotoxy(1,11);write('ID Pelanggan yang dicari tidak


ditemukan !!');

end;

close(database);

readln;

end;

procedure cari_nama;

var

cari:string;

ketemu:boolean;

begin

clrscr;

assign(database,'save.dat');

reset(database);

gotoxy(1,1);write('Masukkan Nama Pelanggan yang dicari : ');

gotoxy(1,3);write('===================================================
=============================');

gotoxy(1,4);write('| Data
Laundry |');

gotoxy(1,5);write('===================================================
============================');

gotoxy(1,6);write('| No Pelanggan | Nama Pelanggan |


Tanggal | Berat | Total Bayar |');

gotoxy(1,7);write('|---------------+--------------------+--------
-----+-----------+---------------|');
gotoxy(1,8);write('| | |
| | |');

gotoxy(1,9);write('----------------------------------------------
----------------------------------');

gotoxy(39,1);readln(cari);cari:=upcase(cari);

i:=1;

ketemu:=false;

while (not eof (database)) and (not ketemu) do

begin

read((database),trans[i]);

if upcase(trans[i].nama) = cari 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);

gotoxy(1,11);write('Data yang dicari ditemukan !!');

end ;

//validasi data tidak ditemukan

if (not ketemu)then

begin

gotoxy(1,11);write('Data yang dicari tidak ditemukan


!!');

end;

close(database);

readln;
end;

procedure tampil_transaksi;

begin

repeat

clrscr;

gotoxy(18,6);
write('=================================================');

gotoxy(18,7); write('| Menu Lihat Daftar Transaksi


|');

gotoxy(18,8);
write('=================================================');

gotoxy(18,9); write('| 1. Daftar Transaksi Berdasarkan Nama


(ASC) |');

gotoxy(18,10);write('|
|');

gotoxy(18,11);write('| 2. Daftar Transaksi Berdasarkan Tanggal


(DSC) |');

gotoxy(18,12);write('|
|');

gotoxy(18,13);write('| 3. Daftar Transaksi Berdasarkan Berat


(DSC) |');

gotoxy(18,14);write('|
|');

gotoxy(18,15);write('| 4. Hapus Data Transaksi


|');

gotoxy(18,16);write('|
|');

gotoxy(18,17);write('| 0. Kembali ke Menu Utama


|');

gotoxy(18,18);write('-------------------------------------------
--');

gotoxy(18,19);write(' Silahkan pilih menu :


');

gotoxy(18,20);write('-------------------------------------------
--');

gotoxy(42,19); readln(pilih);

while (pilih < 0 ) or (pilih > 4) do

begin
gotoxy(13,23); textcolor(red);

write('Anda salah memilih menu, Tekan enter untuk


ulangi..!!');

readln;

gotoxy(13,20); clreol;

gotoxy(42,19); clreol; textcolor(15);readln(pilih);;

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,7); write('| Menu Layanan


|');
gotoxy(18,8);
write('=============================================');

gotoxy(18,9); write('| 1. Input Layanan


|');

gotoxy(18,10);write('|
|');

gotoxy(18,11);write('| 2. Edit Layananan


|');

gotoxy(18,12);write('|
|');

gotoxy(18,13);write('| 3. Hapus Layanan


|');

gotoxy(18,14);write('|
|');

gotoxy(18,15);write('| 4. Tampil Layanan


|');

gotoxy(18,16);write('|
|');

gotoxy(18,17);write('| 0. Kembali ke Menu Utama


|');

gotoxy(18,18);write('-------------------------------------------
--');

gotoxy(18,19);write(' Silahkan pilih menu :


');

gotoxy(18,20);write('-------------------------------------------
--');

gotoxy(42,19); readln(pilih);

while (pilih < 0 ) or (pilih > 4) do

begin

gotoxy(13,20); textcolor(red);

write('Anda salah memilih menu, Tekan enter untuk


ulangi..!!');

readln;

gotoxy(13,20); clreol;

gotoxy(42,19); clreol; textcolor(15);readln(pilih);;

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;

procedure menu_cari(var pilih:integer);

begin

repeat

clrscr;

gotoxy(14,6);
write('====================================================');

gotoxy(14,7); write('| MENU PENCARIAN


|');

gotoxy(14,8);
write('====================================================');

gotoxy(14,9); write('| 1. Cari Berdasarkan ID Pelanggan


|');

gotoxy(14,10);write('|
|');

gotoxy(14,11);write('| 2. Cari Berdasarkan Nama Pelanggan


|');
gotoxy(14,12);write('|
|');

gotoxy(14,13);write('| 0. Kembali ke Menu Utama


|');

gotoxy(14,14);write('-------------------------------------------
---------');

gotoxy(14,15);write(' Silahkan pilih menu :


');

gotoxy(14,16);write('-------------------------------------------
---------');

gotoxy(38,15); readln(pilih);

while (pilih < 0 ) or (pilih > 2) do

begin

gotoxy(13,20); textcolor(red);

write('Anda salah memilih menu, Tekan enter untuk


ulangi..!!');

readln;

gotoxy(13,20); clreol;

gotoxy(38,15); clreol; textcolor(15);readln(pilih);;

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,6); write(' CLEAN WASH LAUNDRY');

gotoxy(23,7); write('=================================');

gotoxy(23,8); write('| MENU UTAMA |');

gotoxy(23,9); write('=================================');

gotoxy(23,10); write('| 1. Input Data Transaksi |');

gotoxy(23,11); write('| |');

gotoxy(23,12);write('| 2. Tampil Daftar Transaksi |');

gotoxy(23,13);write('| |');

gotoxy(23,14);write('| 3. Layanan |');

gotoxy(23,15);write('| |');

gotoxy(23,16);write('| 4. Pencarian |');

gotoxy(23,17);write('| |');

gotoxy(23,18);write('| 0. Keluar |');

gotoxy(23,19);write('---------------------------------');

gotoxy(23,20);write(' Silahkan pilih menu : ');

gotoxy(23,21);write('---------------------------------');

gotoxy(47,20); readln(menu);

while (menu < 0 ) or (menu > 4) do

begin

gotoxy(13,23); textcolor(red);

write('Anda salah memilih menu, Tekan enter untuk


ulangi..!!');

readln;

gotoxy(13,23); clreol;

gotoxy(47,20); clreol; textcolor(15); readln(menu);

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

gotoxy(17,11);write('Silahkan masukkan nama pengguna : ');


readln(nama);

gotoxy(17,13);write('Silahkan masukkan kata sandi : ');


readln(kode);

if (nama = 'admin') and (kode = 'admin') or (nama= 'nama')


and (kode ='kode') then

begin

gotoxy(6,15); write('SELAMAT! ANDA BERHASIL LOGIN, TEKAN


ENTER UNTUK KE HALAMAN SELANJUTNYA');
readln;

menu_utama(pilih);

i := 3;

//con := 1;

end

else

begin

clrscr;

gotoxy(11,9);writeln('Nama atau kode yang anda masukan


salah, silahkan diulang','(',2-i,')');

i:=i+1;

if i=3 then

begin

//con :=0;

clrscr;

gotoxy(21,11);write('AKUN TERKUNCI');

readln;

end;

end;

end;

until (i >= 3);

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

2.3 Menu Input Data Transaksi


2.4 Menu Tampil Daftar Transaksi

2.4.1 Daftar Transaksi Terurut Berdasarkan Nama (Ascending)


2.4.2 Daftar Transaksi Terurut Berdasarkan Tanggal (Descending)

2.4.3 Daftar Transaksi Terurut Berdasarkan Berat (Descending)


2.4.4 Hapus Data Transaksi
a. Sebelum dihapus

b. Setelah dihapus
2.5 Menu Layanan

2.5.1 Input Data Layanan


2.5.2 Edit Data Layanan
a. Sebelum diedit

b. Setelah diedit
2.5.3 Hapus Data Layanan
a. Sebelum dihapus

b. Setelah dihapus
2.5.4 Tampil Data Layanan

2.6 Menu Pencarian


2.6.1 Cari Berdasarkan ID Pelanggan
a. Pencarian data ditemukan

b. Pencarian data tidak ditemukan


2.6.2 Cari Berdasarkan Nama Pelanggan
a. Pencarian data ditemukan

b. Pencarian data tidak ditemukan

You might also like