Exercise Antrian Print
Program CONTOH_ANTRIAN;
uses crt;
 
const maxelm = 15;
type tipeelemen = record
nama : string[15];
nim : string[10];
lulus: byte;
end;
antrian = record
banyak : 0..maxelm;
elemen : array[1..maxelm] of tipeelemen;
end;


var Q : antrian;


function penuhq(q : antrian):boolean;
begin
if q.banyak = maxelm then penuhq := true
else penuhq:= false
end;
 


function kosongq(q:antrian):boolean;
begin
if q.banyak = 0 then kosongq := true
else kosongq := false
end;
 


Procedure addq(var q: antrian;data : tipeelemen);
begin
if not penuhq(q) then
begin
q.banyak := q.banyak + 1;
q.elemen[q.banyak] := data;
end
else
writeln('Maaf antrian penuh');
end;
 


Procedure deleteq(var data : tipeelemen; var q: antrian);
var i : 0..maxelm;
begin
if not kosongq(q) then
begin
data := q.elemen[q.banyak];
for i:= 2 to q.banyak do
q.elemen[i-1] := q.elemen[i];
q.banyak := q.banyak-1;
end
else
writeln('Maaf antrian kosong');
end;
 


Procedure bacadata(var q:antrian);
var i,n : integer;
t : tipeelemen;
begin
write('Berapa data mau dimasukkan : ');readln(n);
for i:= 1 to n do
begin
write('Nama mahasiswa : ');readln(t.nama);
write('NIM : ');readln(t.nim);
t.lulus := random(3)+3;
addq(q,t);
end;
end;
 


Procedure tampil(q : antrian);
var i : 0..maxelm;
t : tipeelemen;
begin
writeln('Urutan | Nama | NIM | LULUS');
for i:= 1 to q.banyak do
begin
t := q.elemen[i];
writeln(i:3,t.nama:20, t.nim:12,t.lulus:5,' tahun');
end;
end;
 

 


begin
clrscr;
bacadata(q);
tampil(q);
readln
end.