Anda di halaman 1dari 7

DIKTATKULIAH

ALGORITMAdanSTRUKTURDATAII

STACK

Pertemuan7

Waktu

:135menit

TujuanPembelajaran

:Mahasiswamampumenjelaskanteknikpemrograman

menggunakanStack.

:Stack

SubstansiMateri

TabulasiKegiatanPerkuliahan

No
1
2

Tahap
KegiatanPengajar
Kegiatan
Pendahuluan 1. Membukapertemuan
2. Mengulangmateripertemuan
sebelumnya
Penyajian
1. Pengertianstack
Materi
2. Jenisjenisstack
3. StackdenganArray

Penutup
1. Menyimpulkanmateri
pertemuan
2. Memberikantugaskecil
3. Menutuppertemuan

Kegiatan
Media&
Waktu
Mahasiswa
Alat
Menyimak
PapanTulis 20
Bertanya
Menit
Menyimak
Bertanya
Menjawab
Pertanyaan
Menyimak

PapanTulis 80
Menit
Papantulis

35
Menit

MATERIKULIAH

STACK
Stack adalah suatu tumpukan. Konsep utama dari stack adalah LIFO (Last In First Out),
yaitu benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang
dikeluarkan dari tumpukan. Dalam pascal ada dua cara penerapan stack, yaitu dengan
arraydanlinkedlist.

V3/20092010 1

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

SingleStackdenganArray
Sesuai dengan sifat stack, maka pengambilan/penghapusan elemen dalam stack harus
dimulai dari elemen teratas. Deklarasi konstanta, tipe, dan variable yang akan dipakai
dalampenjelasanoperasioperasistackdenganarrayadalah:

Const

Max={jumlahtumpukan}

Type

TipeData={ };

Stack=array[1..Max]ofTipeData;

Var

Top:TipeData;

OperasioperasipadaSingleStackdenganArray

Create:Membuatstackbaruyangmasihkosong
ProcedureCreate;
Begin

Top:=0;

End;

Full:Fungsiuntukmemeriksaapakahstackyangadasudahpenuh
FunctionFull:Boolean;
Begin

Full:=False;

Iftop=maxthenFull:=True;

End;

V3/20092010 2

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

Push:Menambahkansebuahelemenelemenkedalamstack.Tidakbisadilakukan
lagijikastacksudahpenuh.
ProcedurePush(elemen:TipeData);
Begin

IfnotFullthen

Begin

Top:=Top+1;{atauInc(Top)}

Stack[Top]:=elemen;

End;

End;

Empty:Fungsiuntukmenentukanapakahstackkosongatautidak.
FunctionEmpty:Boolean;
Begin
Empty:=False;
IfTop=0thenEmpty:=True;
End;

Pop:Mengambilelementeratasdaristack.Stacktidakbolehkosong.
ProcedurePop(elemen:TipeData);
Begin

IfnotEmptythen

Begin

Elemen:=stack[Top];

Top:=Top1;{atauDec(Top)}

End;

End;
V3/20092010 3

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

Clear:Mengosongkanstack(Jikatop=0,makastackdianggapkosong)
ProcedureClear;
Begin

Top:=0;

End;

DoubleStackdenganArray
Merupakan teknik yang dikembangkan untuk menghemat pemakaian memory dalam
pembuatan dua stack dengan array. Intinya adalah menggunakan sebuah array untuk
menampungduastack.
Contoh deklarasi konstanta, tipe, dan variable yang akan dipakai dalam operasioperasi
doublestackarray.

Const

Max={jumlahtumpukan}

Type

TipeData={ };

Stack=array[1..Max]ofByte;

Var

Top:array[1..2]ofByte;

OperasioperasipadaDoubleStackdenganArray

Create:Membuatstackbaruyangmasihkosong
ProcedureCreate;
Begin

Top[1]:=0;

Top[2]:=max+1;
V3/20092010 4

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

End;

Full:Fungsiuntukmemeriksaapakahstackyangadasudahpenuh
FunctionFull:Boolean;
Begin

Full:=False;

Iftop[1]+1>=top[2]thenFull:=True;

End;

Push:Menambahkansebuahelemenelemenkedalamstack.Tidakbisadilakukan
lagijikastacksudahpenuh.
ProcedurePush(elemen:TipeData;NoStack:Byte);
Begin

IfnotFullthen

Begin

CaseNoStackof

1:Top[1]:=Top[1]+1;

2:Top[2]:=Top[2]1;

Stack[Top[NoStack]]:=elemen;

End;

End;

V3/20092010 5

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

Empty:Fungsiuntukmenentukanapakahstackkosongatautidak.
FunctionEmpty(NoStack:Byte):Boolean;
Begin
Empty:=False;
CaseNoStackof

1:ifTop[1]=0then

Empty:=True;

2:ifTop[2]=Max+1then

Empty:=True;

End;
End;

Pop:Mengambilelementeratasdaristack.Stacktidakbolehkosong.
ProcedurePop(varelemen:TipeData;NoStack:Byte);
Begin

IfnotEmpty(NoStack)then

Begin

Elemen:=stack[Top[NoStack]];

CaseNoStackof

1:Top[1]:=Top[1]1;

2:Top[2]:=Top[2]+1;

End;

End;

End;

V3/20092010 6

DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII

STACK

Clear:Mengosongkanstack(Jikatop=0,makastackdianggapkosong)
ProcedureClear(NoStack:Byte);
Begin

CaseNoStackOf

1:Top[1]:=0;

2:Top[2]:=Max+1;

End;

End;

V3/20092010 7

Anda mungkin juga menyukai