LAPORAN
TUGAS PEMOGRAMAN
Program Array Berdimensi Satu, Prosedur, Searching, dan Sorting
Data pada Toko Kecantikan Wajah Alami Blora
Untuk Memenuhi Tugas Akhir Mata Kuliah Dasar Pemrograman 2
Dosen Pembimbing: Bp. Chambali, B. Eng, M. Komp
Disusun Oleh ;
Yessy Ambar Dewi
[Link].20
LT-2C
PROGRAM STUDI D3 TEKNIK LISTRIK
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2019/2020
PROGRAM ARRAY BERDIMENSI
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
INPUT: KODE BARANG
(T)
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))
JUM[T]>5 DISKON_1 BAYAR_1
:
JUM[T]<5 DISKON_2 BAYAR_2
JUM[T]=5 DISKON_3 BAYAR_3
END
FOR T:=1 TO (N-1) DO
FOR J:=(T+1) TO N DO
F D E
D
F E
KODE[T], HS[T], JUM[T],
DISKON[T],
KODE [T]
BAYAR[T]
END
END
TOTRANS = TOTRANS + BAYAR[T]
CETAK: DAFTAR TRANSAKSI PENJUALAN JILBAB
SALE 5% UNTUK PEMBELIAN JILBAB LEBIH DARI
5 ITEM
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
CETAK: GARIS HORIZONTAL
3X
END
FOR M = 1 TO 12
CETAK: GARIS VERTIKAL
6X
END
FOR C = 1 TO N
CETAK: C, KODE[C], HS[C],
JUM[C], DISKON [C], BAYAR[C]
END
FOR C = 1 TO N
CETAK: C, KODE[C], HS[C],
JUM[C], DISKON [C], BAYAR[C]
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