Anda di halaman 1dari 35

STACK(Tumpukan)

GedeAditra Pradnyana,S.Kom.,M.Kom
MasihIngat?
Kumpulandatayangmemiliki tipe lebih dari satu.
MasihIngat?
Typenama_record =record
identifier_1:tipe_data_1;
:
:
identifier_n :tipe_data_n;
end;
var variabel :nama_record;
MengaksesElemenRecord
x.Nama
x.Usia
x.Kota
x.Kodepos
with x do
Begin
Nama
Usia
Kota
Kodepos
End
Langsung With..Do
STACK
Suatu bentuk khusus dari linierlist,dengan operasi
penyisipan dan penghapusan dibatasi hanya pada
satu sisinya,yaitu puncak stack(TOP).
Suatu metode untuk Inputdan hapus didalam
memori komputer.
Penghapusan serta pemasukan elemenpadastack
hanyadapatdilakukandisatuposisi,yakniposisi
akhir.
Posisiinidisebutpuncak atau top dari stack.
Top
9
5
5
ElementeratasdaristackS dinotasikansebagai
TOP(S).
Untuk stackS=[S1,S2,S3,...,ST]maka TOP(S)=ST
Jumlah elemen didalam stack S kita notasikan
dengan NOEL(S).NOEL(S) menghasilkan nilai
integer.
Untuk stackS=[S1,S2,S3,...,ST]maka NOEL(S)=
T.
A
B
C
D Top
A
B
C
D Top
A B C D
Top
A B C D
Top
OperasiDasarSTACK
Konseputamaoperasipadastack LIFO(LAST
INFIRSTOUT)
Operatorpenyisipan (insertion):PUSH
Operatorpenghapusan (deletion):POP
Ilustrasi
Sebagai Awal Tumpukan masih kosong
Noel (Tumpukan) = 0
Top (Tumpukan) = tidak terdefinisi
Push
PUSH elemen A
Diperoleh Tumpukan = [A]
A
PUSH elemen B
Diperoleh Tumpukan = [A,B]
A
B
PUSH elemen C
Diperoleh Tumpukan = [A, B, C]
A
B
C
PUSH elemen D
Diperoleh Tumpukan = [A, B, C, D]
A
B
C
D
Pop
Pop Tumpukan = [A,B,C,D]
A
B
C
D
Pop Tumpukan = [A,B,C]
A
B
C
Pop Tumpukan = [A,B]
A
B
Pop Tumpukan = [A]
A
Stack dalamPascal
DeklarasiAwal
const MaxElemen = 5;
type Tumpukan = record
Isi : array[1..MaxElemen] of
integer;
Atas : 0..MaxElemen;
end;
var T : Tumpukan;
AlgoritmaAwal
Pastikanposisitumpukankosong
Elemenyangterambilbelumada
procedure awal(var T : Tumpukan);
begin
T.Atas :=0;
end;
1 2 3 4 5
ATAS
AlgoritmaPush
Pastikan tumpukan belum penuh
Inputsatu persatu
procedure PUSH (var T : Tumpukan; nil = integer);
Begin
if (T.Atas = MaxElemen) then
write(Tumpukan sudah PENUH Bro..);
else
begin
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
end;
end;
Push
1 2 3 4 5
ATAS
0
123
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
Push Lagi
1 2 3 4 5
ATAS
0
123 456
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
Push LagidanLagi
1 2 3 4 5
ATAS
0
123 456
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
654 789 321
Push Lagi
1 2 3 4 5
ATAS
0
123 456
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
654 789 321
ATAS = MAX
STACK FULL
procedure PUSH (var T : Tumpukan; nil = integer);
Begin
if (T.Atas = MaxElemen) then
write(Tumpukan sudah PENUH Bro..);
else
begin
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
end;
end;
AlgoritmaPop
Pastikantumpukantidakkosong
AmbilpadaposisiTOPstack
procedure POP (var T : Tumpukan);
Begin
if (T.Atas = 0) then
write(Tumpukan KOSONG Bro);
else
begin
Write(nilai yang diambil : ,T.Isi[T.Atas]);
T.Atas := T.Atas - 1;
end;
end;
PopDulu
1 2 3 4 5
ATAS
0
123 456 654 789 321
Write(nilai yang diambil : ,T.Isi[T.Atas]);
T.Atas := T.Atas - 1;
TUGAS
Buatlahprogramenkripsi membalikkata:
Mamamakannasibungkus
Menjadi:
Sukgnub isan nakam amam
Gunakankonsepstack danstruct
SUKSMABRO..
NEXTQueue

Anda mungkin juga menyukai