Anda di halaman 1dari 4

KELOMPOK 9

Nama : Armin Hidayat

Emba

PENGETIAN STACK

1. Stack/Tumpukan.
Stack adalah kumpulan suatu elemen dimana hanya elemen yang baru dimasukkan yang
dapat di akses atau di lihat.

Stack merupakan perintah pengumpulan data secara linear yang menyusun dataa seperti
tumpukan dan bersifat Last In First Out (LIFO) yang berarti data yang terahir masuk adalah
data yang pertama keluar.

Contoh Dalam Kehidupan Sehari-hari

a. Setumpukan korang, dimana koran yang paling terahir di tambahkan dan ditaruh diatas
adalah koran yang dapat di lihat.
b. Tumpukan Batu bata yang sedangditurunkan dari mobil pasti yang di ambil adalah batu
bata yang paling atas, padahal batu bata pertama yang di masukan ke dalama mobil
adalah batu bata yang berada di bawa.
c. Seorang yang sedang mencuci piring, piring yang di cucipertama pasti akan di letakkan di
bawa dan akan terus berlanjut sampai tumpukan piring yang terahir di cuci. Lalu piring
pasti akan di taruh di rank dan pasti yang diambil adalah piring yang paling atas yaitu
piring yang terahir dicuci dan yang pertama di cuci pasti akan terahir

Jadi Stack Yaitu sebuah koleksi objek yang menggunkan prinsi LIFO (Last In First Out) dan stack
dapat diimplementasikan sebagai representasi berkaitan atau kontinyu.

Ciri-ciri Stack.

a. Elemen TOP/Puncak diketahui

b. Penyimpanan dan pemhapusan selalu di lakukan di TOP.

LIFO ( Last In First Out).

Pemanfaatan stack

a. Perhitungan Ekspresi Aritmatika (posfix)

b. Algiritma Blackracking

c. Algoritma Rekursif
Operasi Stack Yang Bisa Digunakan Yaitu Sebagai Berikut.

a. Puhs untuk memasukkan atau menginputkan data.

b. Pop untuk mengeluarkan data.

c. IsEmpety untuk mengetahui tumpukan yang kosong.

d. IsFull untuk mengetahui jika tampilan sudah penuh.

e. Clear untuk menghapus seluru data atau membersikan data

Contoh Program Stack

uses crt;

type

TStack = record

Stacks: array[0..10] of integer;

top: integer;

end;

var

tumpukan : TStack;

// menginisialisasikan stack

function initStack(var stack:TStack): boolean;

begin

stack.top:= -1; // kondisi stack kosong

initStack:= true;

end;

function push(var stack:TStack; data: integer): boolean;

begin

if high(stack.stacks) = stack.top then begin

writeln('Ups..! tumpukan penuh');

push:= false;

exit;

end

else begin

inc(stack.top);
stack.stacks[stack.top]:= data;

push := true;

end;

end;

function pop(var stack: TStack): integer;

begin

if stack.top = -1 then begin

writeln('Ups..! tumpukan telah kosong');

pop := -1

end else begin

pop := stack.stacks[stack.top];

stack.stacks[stack.top]:=0;

dec(stack.top);

end;

end;

var jawab, data: byte;

begin

clrscr;

initStack(tumpukan);

repeat

writeln('1. Masukan data kedalam tumpukan ');

writeln('2. Keluarkan data dari tumpukan ');

writeln('0. Keluar ');

write('Masukan pilihan anda :'); readln(jawab);

case jawab of

1: begin

write('Masukan datanya :'); readln(data);

push(tumpukan, data);

end;

2: begin

writeln('Data Tumpukan teratas = ', pop(tumpukan));


end;

0:;

else writeln('Maaf! salah memasukan tombol');

end;

readln;

until jawab =0;

end.

Anda mungkin juga menyukai