Stack

by 12:13:00 0 komentar
Kali ini saya akan memnjelaskan tentang apa sih yang namanya stack [tumpukan] dalam bahasa pascal.
Jadi,secara sederhana tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data lain. Satu hal yang perlu diingat adalah bahwa kita bisa menambahkan (menyisipkan) data, mengambil (menghapus) data lewat ujung yang sama, yang disebut sebagai ujung atas tumpukan (top of stack).

Implementasi tumpukan dengan larik
Penyajian tumbukan bisa menggunakan larik )array) walaupun penyajian dengan menggunakan larik dianggap kurang tepat karena banyaknya elemen dalam larik sudah tertentu (statis) sedangkan pada tumpukan, banyaknya elemen bisa sangat bervariasi (dinamis). Meskupun demikian , larik bisa digunakan dengan anggapan bahwa banyaknya elemen maksimal dari tumpukan tersebut tidak akan melebihi batas maksimal dari banyaknya elemen dalam larik.
Deklarasi tumpukan bisa menggunakan tipe data terstruktur yaitu tipe rekaman (record) yang terdiri dari dua medan. Medan pertama berisi larik untuk menyimpan elemen tumpukan yang bertipe, sedang medan kedua bertipe integer untuk mencatat posisi ujung tumpukan, sebagai berikut:
    



Const max_elemen = 255;
Type tumpukan = record
Isi : array [1..max_elemen] of integer;
Atas : 0..max_elemen;
End;
Var t:tumpukan;

Operasi yang bisa dilakukan pada tumpukan adalah operasi push, dan operasi pop.

Implementasi prosedur push:

     Procedure push(var T:tumpukan; x:integer);
     Begin
              T.Atas := T.Atas + 1;
              T.Isi[T.Atas] := x;
End;

Implementasi prosedur pop:
Procedure pop(var T:tumpukan);
Begin
     T.Atas := T.Atas – 1;
End;





      Cobalah program di bawah ini, amati untuk beberapa masukan yang berbeda.

Program pop_push;
Uses crt;
Const elemen = 225; {batas maksmimum karakter}
Type s255 = string [elemen];
     Tumpukan = record
          Isi : s255;
          Atas : 0 ..elemen;
     End;
Var  t    : tumpukan;
     W    : char;
     Kalimat:s255;
     I,j  : integer;

Procedure awalan(var : tumpukan);
Begin
     T.atas := 0
End;

Procedure push(var T : tumpukan; x : char);
Begin
     T.atas := t.atas+1;
     T.isi[t.atas] := x;
End;

Function pop(var t:tumpukan): char;
Begin
     Pop:=t.isi[t.atas];
     t.atas := t.atas-1
end;

begin {program utama}
clrscr;
{melakukan proses push}
writeln(‘Masukkan kalimat = ‘);
read(kalimat);
for i:=1 to lenght(kalimat) do
     push(t, kalimat[i]);

write(‘Elemen yang di-push = ‘,kalimat);
readln;
{melakukan proses pop}
for i:=1 to lenght(kalimat) do
     push(t,kalimat[i]);
writeln;
writeln(‘Hasil akhir push dibaca dengan pop = ‘);
{menampilkan hasil proses pop}
for j:= 1 to lenght(kalimat) do
begin
     w:=pop(t);
     write(w);
end;
readln;
end.

 Modifikasi program diatas untuk menambahkan sebuah karakter dalam tumpukan.

Contoh input : aku suka kamu
Tambahan karakter : q

Hasil akhir : q umka akus uka

Unknown

Developer

Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

0 komentar:

Post a Comment

luvne.com ayeey.com cicicookies.com mbepp.com tipscantiknya.com kumpulanrumusnya.comnya.com