Algoritma Membalik Kata dengan Stack

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;
//Procedure Inisialisai Tumpukan
procedure inisialisasi (var t:stack); 
begin
  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;

//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)); 
  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.

Share this:

Related Posts
Disqus Comments