Algoritma Membalik Kata dengan Stack
Dengan memanfaatkan stack maka kita bisa menggunakannya untuk membalik
sebuah kata yang di inputkan, bisa kita lihat seperti pada program
dibawah ini.
uses crt;
const elemen=20;
type
huruf = string[elemen];
stack = record
s : huruf;
top :0..elemen
end;
var
t: stack;
i: integer;
kata : huruf;
temp,lagi:char;
const elemen=20;
type
huruf = string[elemen];
stack = record
s : huruf;
top :0..elemen
end;
var
t: stack;
i: integer;
kata : huruf;
temp,lagi:char;
//Procedure Inisialisai Tumpukan
procedure inisialisasi (var t:stack);
begin
t.top:=0;
end;
t.top:=0;
end;
//Procedure untuk memasukkan elemen ke dalam.
procedure push(var t : stack; x: char);
begin
t.top:=t.top+1;
t.s[t.top]:=x
end;
procedure push(var t : stack; x: char);
begin
t.top:=t.top+1;
t.s[t.top]:=x
end;
//Fungsi untuk mengambil elemen dari tumpukan.
function pop(var t: stack):char;
begin
pop:=t.s[t.top];
t.top:=t.top-1;
end;
//Program Utama
begin
repeat
ClrScr;
inisialisasi(t);
write('Masukan Kata : '); //Memasukkan Kata
readln(kata); //Membaca Inputan
writeln;
write('Kata Asli : ',kata); //Outputan
writeln;
//Jika kata yang dimasukkan lebih kecil dari 10 maka kata akan dibalik.
if (length(kata)<10 span="" then="">
begin
write('balik kata = ');
for i:=1 to length(kata) do
push(t,kata[i]);
for i:=1 to length(kata) do
write(pop(t)); 10>
end
else //Jika tidak maka akan muncul pesan kata lebih dari 10.
begin
writeln;
writeln('Kata yang anda inputkan lebih dari 10');
end;
else //Jika tidak maka akan muncul pesan kata lebih dari 10.
begin
writeln;
writeln('Kata yang anda inputkan lebih dari 10');
end;
writeln;
write('Mau coba lagi ? [Y/T] : ');readln(lagi);
until upcase (lagi)='T';
end.
Post a Comment