uses crt;
type
tmp = record
kal: string[255];
urutan: integer;
end;
var
t: tmp;
i: integer;
kata: string[255];
input: char;
teks : text;
procedure mulai(var t: tmp);
begin
t.urutan := 0;
end;
procedure geser(var t: tmp; x: char);
begin
t.urutan := t.urutan + 1;
t.kal[t.urutan] := x;
end;
function akhir(var t: tmp) : char;
begin
akhir := t.kal[t.urutan];
t.urutan := t.urutan - 1;
end;
begin
clrscr;
mulai(t);
writeln('Program Membalikkan Kata');
writeln('------------------------');
repeat
writeln;
write('Kata/kalimat yang akan dibalik: ');readln(kata);
writeln('Kata/kalimat asli: ',kata);
writeln;
for i := 1 to length(kata) do
geser(t, kata[i]);
write('Kata/kalimat hasil balikan: ');
for i := 1 to length(kata) do
write(akhir(t));
writeln;
writeln;
write('Ulangi? y/t: ');
readln(input);
until input = 't';
end.