5/24/2018 4. Stack(New)
1/35
STACK(Tumpukan)GedeAditra Pradnyana,S.Kom.,M.Kom
5/24/2018 4. Stack(New)
2/35
MasihIngat?
Kumpulandatayangmemiliki tipe lebih dari s
5/24/2018 4. Stack(New)
3/35
MasihIngat?
Typenama_record =record
identifier_1:tipe_data_1;
:
:identifier_n :tipe_data_n;
end;
var variabel :nama_record;
5/24/2018 4. Stack(New)
4/35
MengaksesElemenRecord
x.Nama
x.Usia
x.Kota
x.Kodepos
with x do
Begin
Nama
Usia
Kota
Kodepos
End
Langsung With..Do
5/24/2018 4. Stack(New)
5/35
STACK
Suatu bentuk khusus dari linierlist,dengan o
penyisipan dan penghapusan dibatasi hanya
satu sisinya,yaitu puncak stack(TOP). Suatu metode untuk Inputdan hapus didala
memori komputer.
5/24/2018 4. Stack(New)
6/35
Penghapusan serta pemasukan elemenpadahanya dapat dilakukan di satu posisi,yaknipoakhir.
Posisiinidisebutpuncak atau top dari stack.Top
5/24/2018 4. Stack(New)
7/35
5/24/2018 4. Stack(New)
8/35
ElementeratasdaristackS dinotasikansebaTOP S). Untuk stackS=[S1,S2,S3,...,ST]maka TOP(S
Jumlah elemen didalam stack S kita notasikdengan NOEL S).NOEL S)menghasilkan niinteger.
Untuk stackS=[S1,S2,S3,...,ST]maka NOEL
T.
5/24/2018 4. Stack(New)
9/35
A
B
C
D Top
A
B
C
D Top
A B C D
Top
ABCD
Top
5/24/2018 4. Stack(New)
10/35
OperasiDasarSTACK
Konseputamaoperasipadastack LIFO(L
INFIRSTOUT)
Operatorpenyisipan (insertion):PUSH
Operatorpenghapusan (deletion):POP
5/24/2018 4. Stack(New)
11/35
Ilustrasi
Sebagai Awal Tumpukan masih kosong
Noel (Tumpukan) = 0 Top (Tumpukan) = tidak terdefinisi
5/24/2018 4. Stack(New)
12/35
Push
PUSH elemen A
Diperoleh Tumpukan = [A]
A
5/24/2018 4. Stack(New)
13/35
PUSH elemen B
Diperoleh Tumpukan = [A,B]
A
B
5/24/2018 4. Stack(New)
14/35
PUSH elemen C
Diperoleh Tumpukan = [A, B, C]
AB
C
5/24/2018 4. Stack(New)
15/35
PUSH elemen D
Diperoleh Tumpukan = [A, B, C, D]
ABC
D
5/24/2018 4. Stack(New)
16/35
Pop
Pop Tumpukan = [A,B,C,D]
ABC
D
5/24/2018 4. Stack(New)
17/35
Pop Tumpukan = [A,B,C]
ABC
5/24/2018 4. Stack(New)
18/35
Pop Tumpukan = [A,B]
AB
5/24/2018 4. Stack(New)
19/35
Pop Tumpukan = [A]
A
5/24/2018 4. Stack(New)
20/35
Stack dalamPascal
5/24/2018 4. Stack(New)
21/35
DeklarasiAwal
const MaxElemen = 5;
type Tumpukan = record
Isi : array[1..MaxElemen] of
integer;
Atas : 0..MaxElemen;
end;
var T : Tumpukan;
5/24/2018 4. Stack(New)
22/35
AlgoritmaAwal
Pastikanposisitumpukankosong
Elemenyangterambilbelumada
procedure awal(var T : Tumpukan);
begin
T.Atas :=0;
end;
5/24/2018 4. Stack(New)
23/35
1 2 3 4
ATAS
5/24/2018 4. Stack(New)
24/35
AlgoritmaPush
Pastikan tumpukan belum penuh
Inputsatu persatu
5/24/2018 4. Stack(New)
25/35
procedure PUSH (var T : Tumpukan; nil = integer);
Begin
if (T.Atas = MaxElemen) then
write(Tumpukan sudah PENUH Bro..);
else
beginT.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
end;
end;
5/24/2018 4. Stack(New)
26/35
Push
1 2 3 4
ATAS
0123
T.Atas := T.Atas + 1
T.Isi[T.Atas] := nil
5/24/2018 4. Stack(New)
27/35
Push Lagi
1 2 3 4
ATAS
0123 456
T.Atas := T.Atas + 1
T.Isi[T.Atas] := nil
5/24/2018 4. Stack(New)
28/35
Push LagidanLagi
1 2 3 4
ATAS
0123 456
T.Atas := T.Atas + 1
T.Isi[T.Atas] := nil
789 321
5/24/2018 4. Stack(New)
29/35
Push Lagi
1 2 3 4
0123 456
T.Atas := T.Atas +
T.Isi[T.Atas] := ni
789 321
5/24/2018 4. Stack(New)
30/35
procedure PUSH (var T : Tumpukan; nil = integer);
Begin
if (T.Atas = MaxElemen) then
write(Tumpukan sudah PENUH Bro..);
else
beginT.Atas := T.Atas + 1;
T.Isi[T.Atas] := nil;
end;
end;
5/24/2018 4. Stack(New)
31/35
AlgoritmaPop
Pastikantumpukantidakkosong
AmbilpadaposisiTOPstack
5/24/2018 4. Stack(New)
32/35
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;
5/24/2018 4. Stack(New)
33/35
PopDulu
1 2 3 4
0123 456 789 321
Write(nilai yang diambil: ,T.Isi[T.A
T.Atas := T.Atas - 1;
TUGAS
5/24/2018 4. Stack(New)
34/35
TUGAS
Buatlahprogramenkripsi membalikkata:
Mamamakannasibungkus
Menjadi:
Sukgnub isan nakam amam
Gunakankonsepstack danstruct
5/24/2018 4. Stack(New)
35/35
SUKSMABRO..NEXT Queue
Top Related