KO 1 : P1;
KO 2; P2;
……; ….;
[ELSE Px]
END;
b. Refleksi
a. Salinan Tugas
Buatlah program Pascal dari soal latihan yang belum anda selesaikan di atas,
lengkap (sudah dikompilasi-dieksekusi- dan hasil benar) !
b. Strategi :
Variabel : C1 , C2 , K1 , K2, K3
Konstanta :-
Tipe yang dibutuhkan : string
Perintah Pascal : writeln, readln
Pola Algoritma :-
program latprak1;
uses crt;
var C1 , C2 , K1 , K2, K3 : string;
begin
clrscr;
writeln('warna celana favorit pertama ',C1); readln(C1);
writeln('warna celana favorit kedua ',C2); readln(C2);
writeln('warna kemeja favorit pertama ',K1); readln(K1);
writeln('warna kemeja favorit kedua ',K2); readln(K2);
writeln('warna kemeja favorit ketiga ',K3); readln(K3);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C1, 'dan kemeja' ,K1);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C1, 'dan kemeja' ,K2);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C1, 'dan kemeja' ,K3);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C2, 'dan kemeja' ,K1);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C2, 'dan kemeja' ,K2);
writeln('Jadi pasangan celana dan kemeja favorit yang pertama
adalah celana ' ,C2, 'dan kemeja' ,K3);
readln;
end.
d. Ujicoba Program
a. Salinan Tugas
b. Strategi :
Variabel : a, b, n, sn
Konstanta :-
Tipe yang dibutuhkan : integer, real
Perintah Pascal : write, readln, writeln
Pola Algoritma :-
program latprak2;
uses crt;
var a, b, n : integer;
sn : real;
begin
clrscr;
write('Masukkan suku pertama (a) = '); readln(a);
write('Masukkan beda (b) = '); readln(b);
write('Masukkan suku ke n = '); readln(n);
d. Ujicoba Program
a. Salinan Tugas
b. Strategi :
Variabel : BL, TH
Konstanta :-
Tipe yang dibutuhkan : integer
Perintah Pascal : write, readln, case of
Pola Algoritma : if, mod
program latprak3;
uses crt;
var BL, TH : integer;
begin
clrscr;
write('Masukkan kode bulan '); readln(BL);
write('Masukkan kode tahun '); readln(TH);
case BL of
1 : write('Januari ',TH,' : 31 hari');
2 : if TH mod 4=0 then
begin
writeln('Februari ',TH,' : 29 hari');
end
else
begin
write('Februari ',TH,' : 28 hari');
end;
3 : write('Maret ',TH,' : 31 hari');
4 : write('April ',TH,' : 30 hari');
5 : write('Mei ',TH,' : 31 hari');
6 : write('Juni ',TH,' : 30 hari');
7 : write('Juli ',TH,' : 31 hari');
8 : write('Agustus ',TH,' : 31 hari');
9 : write('September ',TH,' : 30 hari');
10: write('Oktober ',TH,' : 31 hari');
11: write('November ',TH,' : 30 hari');
12: write('Desember ',TH,' : 31 hari');
end;
readln;
end.
d. Ujicoba Program
a. Salinan Tugas
Buat sebuah program Pascal untuk menghitung jumlah hari dari awal tahun T1
sampai dengan akhir tahun T2. T1 dan T2 sebarang bilangan bulat positif, masing-
masing mewakili tahun. Cotnh: andai T1 = 2019 dan T2 = 2020, maka program
akan menghitung dan menampilkan jumlah hari yang dimaksud adalah: 731
(bilangan tsb diperoleh dari usia tahun 2019 yaitu 365 ditambah dengan usia tahun
2020 yaitu 366).
b. Strategi :
program latprak5;
uses crt;
var JH, T1, T2, a, k: integer;
begin
clrscr;
JH := 0;
write('Masukkan tahun yang pertama ',T1); readln(T1);
write('Masukkan tahun yang kedua ',T2); readln(T2);
For a := T1 to T2 do
begin
if a mod 4 = 0 then k:= 366 else k := 365;
JH := JH + k;
end;
Writeln('Jadi jumlah hari dari kedua tahun tersebut adalah ',JH);
readln;
end.
d. Ujicoba Program
b. Strategi :
Variabel : B, T, TH, UH
Konstanta :-
Tipe yang dibutuhkan : integer
Perintah Pascal : write, readln, writeln, repeat until
Pola Algoritma : case of, if, mod
b. Teks Program Final
Program latprak6;
uses crt;
begin
clrscr;
REPEAT
write('TANGGAL: ');Readln(T);
write('BULAN: ');Readln(B);
write('TAHUN: ');Readln(TH);
CASE B OF
1,3,5,7,8,10,12: UH := 31;
4,6,9,11:UH:=30;
END;
WRITELN ('TRUE');
end.
d. Ujicoba Program
b. Strategi :
program latprak8;
uses crt;
var tgl, bln, thn, tgl2, bln2, thn2 : integer;
function valid (K, L, M:integer): boolean;
var ub : integer;
begin
case bln of
1,3,5,7,8,10,12: ub:=31;
4,6,9,11: ub:= 30;
2: if M mod 4 = 0 then ub := 29 else ub:= 28;
end;
valid := (K>0) and (K<=ub) and (L>0) and (L<13) and (M>0);
end;
procedure tambah (tgl1, bln1, thn1 : integer; var tgl2, bln2, thn2:
integer);
var ub: integer;
begin
case bln of
1,3,5,7,8,10,12: ub:=31;
4,6,9,11: ub:= 30;
2: if thn1 mod 4 = 0 then ub := 29 else ub:= 28;
end;
if tgl1 = ub then
begin
tgl2:=1; bln2:=bln1+1; thn2:=thn1;
begin
bln2:=1; thn2:=thn1+1;
end;
end
else
begin
tgl2:= tgl1+1; bln2:=bln1; thn2:=thn1;
end;
end;
begin
clrscr;
write(' Masukkan tanggal : '); readln(tgl);
write(' Masukkan bulan : '); readln(bln);
write(' Masukkan tahun : '); readln(thn);
if valid (tgl, bln, thn) then
begin
writeln('Valid');
tambah (tgl, bln, thn, tgl2, bln2, thn2);
writeln('Satu hari setelah tanggal tersebut adalah: ',tgl2, ' - '
,bln2, ' - ' ,thn2);
end
else
begin
writeln('Tidak Valid');
end;
readln;
end.
d. Ujicoba Program
b. Strategi :
program latprak9;
uses crt;
var thn : longint;
function jumlah (thn: integer): longint;
var UHAR: integer;
begin
if thn mod 4 = 0 then UHAR := 366 else UHAR := 365;
if thn = 1900 then jumlah :=366 else jumlah := jumlah(thn-1)+UHAR;
end;
begin
clrscr;
write('Masukkan tahun: '); readln(thn);
writeln('Maka jumlah hari sejak tahun 1900 adalah ',jumlah(thn));
readln;
end.
d. Ujicoba Program
a. Salinan Tugas
b. Strategi :
Variabel : tabel, I, J, K
Konstanta :-
Tipe yang dibutuhkan : integer, byte
Perintah Pascal : write, writeln, readln, for to do
Pola Algoritma : array,
program latprak10;
uses crt;
var tabel : array[1..2, 1..2] of integer;
I, J, K: byte;
begin
clrscr;
for i := 1 to 2 do
for j := 1 to 2 do
begin
write('Masukkan elemen ', i,',', j, ' : ');
readln(Tabel[i,j]);
end;
clrscr;
for j := 1 to 2 do
begin
for k := 1 to 2 do
write(Tabel[J,K]:5);
writeln;
end;
writeln('Transpose matriks tersebut : ');
for j := 1 to 2 do
begin
for k := 1 to 2 do
write(Tabel[k,j]:5);
writeln;
end;
end.
d. Ujicoba Program
a. Salinan Tugas
Susun program Pascal yang membaca sejumlah berhingga nim dan nama
mahasiswa. Selanjutnya, tampilkanlah input tersebut (nim dan nama) dalam
bentuk tabel urut menurut nim !.
b. Strategi :
program latprak11;
uses crt;
var
NIM : array[1..150] of longint;
Nama : array[1..150] of string;
P,Q,R, x: longint;
y: string;
begin
clrscr;
write('Masukkan jumlah mahasiswa :'); readln(P);
for Q:= 1 to P do
begin
write('Masukkan NIM Mahasiswa: '); readln(NIM[Q]);
write('Masukkan Nama Mahasiswa: '); readln(Nama[Q]);
end;
d. Ujicoba Program
C. Pengembangan Tugas Akhir
Tugas Akhir :
a. Salinan Tugas
lalala
b. Strategi :
program tugasakhir;
uses crt;
const n = 10;
var NT : array[1..10] of string;
KT, JS, JGM, JGK, AG :array[1..10] of integer;
Q,R,k,l,gol1,gol2,x,z,a,b: integer;
y : string;
begin
clrscr;
for Q:= 1 to 10 do
begin
write('Nama Kesebelasan ',Q,' '); readln(NT[Q]);
KT[Q] := Q;
end;
clrscr;
for Q := 1 to n do
begin
write('Kode Kesebelasan 1 '); readln(k);
write('Kode kesebelasan 2 '); readln(l);
for Q:=1 to 10 do
AG[Q]:= JGM[Q]-JGK[Q];
for Q:=1 to 9 do
for R:= (Q+1) to 10 do
if JS[Q] < JS[R] then
begin
x:=JS[Q]; JS[Q]:=JS[R]; JS[R]:=x;
y:=NT[Q]; NT[Q]:=NT[R]; NT[R]:=y;
z:=JGM[Q]; JGM[Q]:=JGM[R]; JGM[R]:=z;
a:=JGK[Q]; JGK[Q]:=JGK[R]; JGK[R]:=a;
b:=AG[Q]; AG[Q]:=AG[R]; AG[R]:=b;
end;
for Q:=1 to 9 do
for R:=(Q+1) to 10 do
if(JS[Q]=JS[R]) and (AG[Q]<AG[R]) then
begin
x:=JS[Q]; JS[Q]:=JS[R]; JS[R]:=x;
y:=NT[Q]; NT[Q]:=NT[R]; NT[R]:=y;
z:=JGM[Q]; JGM[Q]:=JGM[R]; JGM[R]:=z;
a:=JGK[Q]; JGK[Q]:=JGK[R]; JGK[R]:=a;
b:=AG[Q]; AG[Q]:=AG[R]; AG[R]:=b;
end;
clrscr;
for Q:=1 to 10 do
writeln(NT[Q],' ',JS[Q],' ',JGM[Q],' ',JGK[Q],' ',AG[Q]);
readln;
end.
end.
d. Ujicoba Program