TUGAS PEMOGRAMAN
Program Array Berdimensi Satu, Prosedur, Searching, dan Sorting
Data pada Toko Kecantikan Wajah Alami Blora
Disusun Oleh ;
Yessy Ambar Dewi
3.31.17.2.20
LT-2C
A. TAnalisa Persoalan
Untuk menghitung diskon yang didapatkan dan nominal yang harus dibayar oleh
pembeli Masker, serta menghitung jumlah transaksi dalam satu bulan.
B. Identifikasi Data
1. Data Input
a. Jumlah Transaksi (N)
b. Kode Masker (T)
c. Jumlah Masker (JUM)
2. Proses
a. Mencari harga
Harga_satuan_1 = 0..100 maka HS = 25000
Harga_satuan_2 = 101..200 maka HS = 20000
Harga_satuan_3 = 201..300 maka HS = 15000
Harga_satuan_4 = 301..400 maka HS = 10000
b. Menghitung diskon
Diskon_1 = JUM > 5 maka DISKON = 0,05 * HS * JUM
Diskon_2 = JUM < 5 maka DISKON = 0 * HS * JUM
Diskon_3 = JUM = 5 maka DISKON = 0 * HS * JUM
c. Menghitung bayar
Bayar_1 = BAYAR = HS * JUM – (0.05 * HS * JUM).
Bayar_2 = BAYAR = HS * JUM – (0 * HS * JUM).
Bayar_3 = BAYAR = HS * JUM – (0 * HS * JUM).
d. Menghitung jumlah Transaksi, TOTRANS = TOTRANS + BAYAR.
3. Data Output
a. Diskon (DISKON)
b. Bayar (BAYAR)
c. Jumlah Transaksi (TOTRANS)
C. Flowchar
Mulai
Input: N
TOTRANS = 0
FOR T = 1 TO N
0..100 HARGA_SATUAN_1
101..200 HARGA_SATUAN_2
0
201..300 HARGA_SATUAN_3
0
C B
A
C A B
301..400 HARGA_SATUAN_4
0
END
INPUT: JUMLAH
BARANG (JUM(T))
END
FOR J:=(T+1) TO N DO
F D E
D
F E
END
END
CETAK: DATE
CETAK: ‘NO’,’KODE’,’HARGA
SATUAN’,’JUMLAH’,’DISKON’,’BAYAR,
CETAK: CHR(179,180,191,192,193,
194,195,196,197,217,218)
G
G
FOR L = 1 TO 58
END
FOR M = 1 TO 12
END
FOR C = 1 TO N
END
FOR C = 1 TO N
END
CETAK: TRANSFER
SELESAI
D. PROGRAM
PROGRAM PROCEDURE_TRANSAKSI_PENJUALAN_MASKER;
USES CRT;
CONST
D=0.05;
D1=0;
D2=0;
VAR
L,M,C,U:INTEGER;
DT:STRING[10];
TOTRANS:REAL;
S1,S2,S3,S4:REAL;
S:INTEGER;
J,T,N:BYTE;
BAYAR,DISKON,HS,JUM:ARRAY[1..10] OF REAL;
KODE:ARRAY[1..10] OF INTEGER;
PROCEDURE MENGHITUNG_DISKON_1;
BEGIN
DISKON[T]:=D*HS[T]*JUM[T];
WRITE('DISKON=RP',DISKON[T]:4:0);
DISKON[T]:=DISKON[T];
END;
PROCEDURE MENGHITUNG_DISKON_2;
BEGIN
DISKON[T]:=D*HS[T]*JUM[T];
WRITE('DISKON=RP',DISKON[T]:4:0);
DISKON[T]:=DISKON[T];
END;
PROCEDURE MENGHITUNG_DISKON_3;
BEGIN
DISKON[T]:=D*HS[T]*JUM[T];
WRITE('DISKON=RP',DISKON[T]:4:0);
DISKON[T]:=DISKON[T];
END;
PROCEDURE MENGHITUNG_BAYAR;
BEGIN
BAYAR[T]:=HS[T]*JUM[T]-(D*HS[T]*JUM[T]);
WRITE('BAYAR=RP',BAYAR[T]:4:0);
BAYAR[T]:=BAYAR[T];
END;
PROCEDURE MENGHITUNG_BAYAR_1;
BEGIN
BAYAR[T]:=HS[T]*JUM[T]-(D1*HS[T]*JUM[T]);
WRITE('BAYAR=RP',BAYAR[T]:4:0);
BAYAR[T]:=BAYAR[T];
END;
PROCEDURE MENGHITUNG_BAYAR_2;
BEGIN
BAYAR[T]:=HS[T]*JUM[T]-(D2*HS[T]*JUM[T]);
WRITE('BAYAR=RP',BAYAR[T]:4:0);
BAYAR[T]:=BAYAR[T];
END;
PROCEDURE MENCARI_HARGA_SATUAN_1;
BEGIN
HS[T]:=35000;
WRITE('HARGA SATUAN=RP',HS[T]:4:0);
HS[T]:=HS[T];
END;
PROCEDURE MENCARI_HARGA_SATUAN_2;
BEGIN
HS[T]:=30000;
WRITE('HARGA SATUAN=RP',HS[T]:4:0);
HS[T]:=HS[T];
END;
PROCEDURE MENCARI_HARGA_SATUAN_3;
BEGIN
HS[T]:=25000;
WRITE('HARGA SATUAN=RP',HS[T]:4:0);
HS[T]:=HS[T];
END;
PROCEDURE MENCARI_HARGA_SATUAN_4;
BEGIN
HS[T]:=20000;
WRITE('HARGA SATUAN=RP',HS[T]:4:0);
HS[T]:=HS[T];
END;
BEGIN
CLRSCR;
BEGIN
TOTRANS:=0;
WRITE('JUMLAH TRANSAKSI=');READLN(N);
END;
WRITE('DATE=');READLN(DT);
FOR T:=1 TO N DO
BEGIN
WRITE('');
TEXTCOLOR(BLUE);WRITE('KODE BARANG=');READLN(KODE[T]);
BEGIN
CASE KODE[T] OF
0..100:
MENCARI_HARGA_SATUAN_1;
101..200:
MENCARI_HARGA_SATUAN_2;
201..300:
MENCARI_HARGA_SATUAN_3;
302..400:
MENCARI_HARGA_SATUAN_4;
END;
WRITELN('');
WRITE('JUMLAH BARANG=');READLN(JUM[T]);
IF JUM[T]>5 THEN MENGHITUNG_DISKON_1;
IF JUM[T]<5 THEN MENGHITUNG_DISKON_2;
IF JUM[T]=5 THEN MENGHITUNG_DISKON_3;
WRITE('');
IF JUM[T]>5 THEN MENGHITUNG_BAYAR;
IF JUM[T]<5 THEN MENGHITUNG_BAYAR_1;
IF JUM[T]=5 THEN MENGHITUNG_BAYAR_2;
END;
WRITE('');
TOTRANS:=TOTRANS+BAYAR[T];
END;
FOR T:=1 TO (N-1) DO
BEGIN
FOR J:=(T+1) TO N DO
BEGIN
IF KODE[T]>KODE[J] THEN
BEGIN
S:=KODE[T];
KODE[T]:=KODE[J];
KODE[J]:=S;
S1:=HS[T];
HS[T]:=HS[J];
HS[J]:=S1;
S2:=JUM[T];
JUM[T]:=JUM[J];
JUM[J]:=S2;
S3:=DISKON[T];
DISKON[T]:=DISKON[J];
DISKON[J]:=S3;
S4:=BAYAR[T];
BAYAR[T]:=BAYAR[J];
BAYAR[J]:=S4;
END;
END;
END;
TEXTCOLOR(BLUE); WRITELN('TOTAL TRANSAKSI
RP',TOTRANS:4:0);
READLN;
CLRSCR;
BEGIN
GOTOXY(17,1); TEXTCOLOR(YELLOW);WRITE('DAFTAR
TRANSAKSI PENJUALAN MASKER');
GOTOXY(13,2); TEXTCOLOR(YELLOW);WRITE('SALE 5% UNTUK
PEMBELIAN LEBIH DARI 5 ITEM');
GOTOXY(7,4); TEXTCOLOR(GREEN);WRITE('DATE=',DT);
GOTOXY(7,6); TEXTCOLOR(GREEN);WRITE('NO');
GOTOXY(12,6); TEXTCOLOR(YELLOW);WRITE('KODE');
GOTOXY(19,6); TEXTCOLOR(GREEN);WRITE('HARGA
SATUAN');
GOTOXY(34,6); TEXTCOLOR(YELLOW);WRITE('JUMLAH');
GOTOXY(43,6); TEXTCOLOR(GREEN);WRITE('DISKON');
GOTOXY(54,6); TEXTCOLOR(YELLOW);WRITE('BAYAR');
GOTOXY(7,20); TEXTCOLOR(YELLOW);WRITE('TOTAL
TRANSAKSI');
END;
FOR L:=1 TO 58 DO
BEGIN
GOTOXY(L+4,5); TEXTCOLOR(YELLOW);WRITE (CHR(196));
END;
FOR M:=1 TO 15 DO
BEGIN
GOTOXY(5,M+4); TEXTCOLOR(GREEN);WRITE(CHR(179));
GOTOXY(10,M+4);WRITE(CHR(179));
GOTOXY(17,M+4);WRITE(CHR(179));
GOTOXY(32,M+4);WRITE(CHR(179));
GOTOXY(41,M+4);WRITE(CHR(179));
GOTOXY(51,M+4);WRITE(CHR(179));
GOTOXY(62,M+4);WRITE(CHR(179));
END;
GOTOXY(5,5);TEXTCOLOR(YELLOW);WRITE(CHR(218));
GOTOXY(10,5);WRITE(CHR(194));
GOTOXY(17,5);WRITE(CHR(194));
GOTOXY(32,5);WRITE(CHR(194));
GOTOXY(41,5);WRITE(CHR(194));
GOTOXY(51,5);WRITE(CHR(194));
GOTOXY(10,7);WRITE(CHR(197));
GOTOXY(17,7);WRITE(CHR(197));
GOTOXY(32,7);WRITE(CHR(197));
GOTOXY(41,7);WRITE(CHR(197));
GOTOXY(5,7);WRITE(CHR(195));
GOTOXY(51,7);WRITE(CHR(197));
GOTOXY(5,19);TEXTCOLOR(GREEN);WRITE(CHR(192));
GOTOXY(10,19);WRITE(CHR(193));
GOTOXY(17,19);WRITE(CHR(193));
GOTOXY(32,19);WRITE(CHR(193));
GOTOXY(41,19);WRITE(CHR(193));
GOTOXY(51,19);WRITE(CHR(193));
GOTOXY(62,5);TEXTCOLOR(YELLOW);WRITE(CHR(191));
GOTOXY(62,7);WRITE(CHR(180));
GOTOXY(61,19);TEXTCOLOR(GREEN);WRITE(CHR(217));
FOR C:=1 TO N DO
BEGIN
GOTOXY(7,C+7);TEXTCOLOR(YELLOW);WRITE('',C);
GOTOXY(12,C+7);WRITE('',KODE[C]:4);
GOTOXY(20,C+7);WRITE('RP',HS[C]:4:0);
GOTOXY(35,C+7);WRITE('',JUM[C]:3:0);
GOTOXY(43,C+7);WRITE('RP',DISKON[C]:4:0);
GOTOXY(24,20);WRITE('RP',TOTRANS:4:0);
GOTOXY(53,C+7);WRITE('RP',BAYAR[C]:4:0);
END;
WRITELN;
TEXTCOLOR(WHITE);
GOTOXY(7,21);WRITE('KODE YANG DICARI:'); READLN(U);
FOR T:=1 TO N DO
IF (U=KODE[T]) THEN
BEGIN
CLRSCR;
WRITELN('DATA YANG DICARI');
WRITELN('KODE= ',KODE[T]);
WRITELN('JUMLAH BARANG=',JUM[T]:10:0);
WRITELN('DISKON=',DISKON[T]:10:0);
WRITELN('TOTAL TRANSAKSI=',TOTRANS:10:0);
END;
READLN;
END.
E.
F. CODING
G. LAYOUT