hafizh stack
TRANSCRIPT
-
8/8/2019 Hafizh Stack
1/13
STACKSTACK
((tumpukantumpukan))
NamaNama :: HafizhHafizh FitriannaFitrianna
NIMNIM :: 0602200906022009
ApaApa ituitu STACK ??STACK ??
StackStackmerupakanmerupakan bentukbentukkhususkhusus daridari
suatusuatu strukturstruktur data,data, dimanadimana node yangnode yang
ditambahkanditambahkan keke dalamdalam listlist dandan diambildiambil
daridari listlist hanyahanya padapada ''kepala'nyakepala'nya,, atauataudengandengan katakata lainlain prinsipprinsip pengolahannyapengolahannya
adalahadalah lastlast--in firstin first--out (LIFO).out (LIFO).
-
8/8/2019 Hafizh Stack
2/13
data yangdata yang terakhirterakhir kalikali dimasukkandimasukkan
akanakan pertamapertama kalikali keluarkeluar daridari stackstacktersebuttersebut..StackStackdapatdapat diimplementasikandiimplementasikan sebagaisebagai
representasirepresentasi berkaitberkait atauatau kontigukontigu ((dengandengan
tabeltabel fix).fix). CiriCiri StackStack::
1.1. ElemenElemen TOP (TOP (puncakpuncak)) diketahuidiketahui
2.2. penisipanpenisipan dandan penghapusanpenghapusan elemenelemen
selaluselalu dilakukandilakukan didi TOPTOP3. LIFO (3. LIFO (Last In First OutLast In First Out))
LIFOLIFO ----
JikaJika inginingin mengambilmengambil 90,90, makamaka harusharus melakukanmelakukan
poppop untukuntuk3737 dandan 1212 terlebihterlebih dahuludahulu keke mudianmudianpoppop untukuntuk90.90.
LaluLalujikajika inginingin 9090 tetaptetap adaada,, makamaka harusharus
melakukanmelakukan pushpush untukuntuk90,90, kemudiankemudian pushpush untukuntuk
1212 dandan 37.37.
DataData hanyahanya bisabisa diambildiambil secarasecara berurutanberurutan,, tidaktidak
biasbias diambildiambil secarasecara langsunglangsung
-
8/8/2019 Hafizh Stack
3/13
pekerjaanpekerjaan padapada komputerkomputer diolahdiolah
berdasarkanberdasarkan pengalamatanpengalamatan--pengalamatanpengalamatan
yangyang diaturdiatur sedemikiansedemikian ruparupa.. BegituBegitujugajugasaatsaat terjaditerjadi suatusuatu interruptinterrupt.. SaatSaat komputerkomputer
menyelesaikanmenyelesaikan suatusuatu interrupt yanginterrupt yang
ditemukannyaditemukannya,, makamaka komputerkomputer kembalikembali
melacakmelacakpekerjaanpekerjaan sebelumnyasebelumnya.. InformasiInformasi
pengalamatanpengalamatan tentangtentang pekerjaanpekerjaan
sebelumnyasebelumnya taditadi disimpandisimpan dalamdalam suatusuatu
registerregister khususkhusus yangyang dikenaldikenal sebagaisebagaisebuahsebuah stack.stack.
IlustrasiIlustrasi STACK (STACK (tumpukantumpukan))
-
8/8/2019 Hafizh Stack
4/13
ILUSTRASI STACKILUSTRASI STACK
kita mempunyai dua buah kotak yang kitatumpuk, sehingga kotak kita letakkan diatas kotak yang lain. Jika kemudiantumpukan dua buah kotak itu kita tambahdengan kotak ketiga, keempat danseterusnya, maka akan kita perolehsebuah tumpukan kotak, yang terdiri dari
N kotak.
-
8/8/2019 Hafizh Stack
5/13
Contohnya kita menumpuk Compo di posisiterakhir, maka Compo akan menjadi elementeratas dalam tumpukan. Sebaliknya,karena kita menumpuk Televisi pada saatpertama kali, maka elemen Televisi menjadi
elemen terbawah dari tumpukan. Dan jikakita mengambil elemen dari tumpukan,maka secara otomatis akan terambil elementeratas, yaitu Compo juga.
DenganDengan demikiandemikian,, padapada stukturstuktur iniini hanyahanyaadaada duadua fungsifungsi utamautama,, yaituyaitu pushpush
((memasukkanmemasukkan node/datanode/data keke dalamdalam stack),stack),
dandan pop (pop (mengambilmengambil node/datanode/data daridari
stack).stack).
Underflow (Underflow (kekurangankekurangan data) yangdata) yang
diakibatkandiakibatkan pengambilanpengambilan datadata sedangkansedangkan
tong stacktong stacksudahsudah kosongkosong..OverFlowOverFlow ((kelebihankelebihan data) yangdata) yang
diakibatkandiakibatkan oleholeh penambahanpenambahan datadata
dimanadimana tong stacktong stacksudahsudah penuhpenuh..
-
8/8/2019 Hafizh Stack
6/13
Operasi-operasi/ fungsi Stack
- Push : digunakan untuk menambah item
pada stack pada tumpukan paling atas
- Pop : digunakan untuk mengambil itempada stack pada tumpukan paling atas
- Clear : digunakan untuk mengosongkanstack
- I sEmpty : fungsi yang digunakan untuk
mengecek apakah stack sudah kosong- I sFull : fungsi yang digunakan untuk
mengecek apakah stack sudah penuh
OPERASI PUSHOPERASI PUSH((menambahmenambah data)data)
-
8/8/2019 Hafizh Stack
7/13
OPERASI POPOPERASI POP
((mengambilmengambil data)data)
OPERASI PUSH DAN POPOPERASI PUSH DAN POP
-
8/8/2019 Hafizh Stack
8/13
CONTOHCONTOH
LENGKAP :LENGKAP :
Contoh dek laras i :
const MaxElemen = 255;type Tumpukan = recordIsi : array [1..MaxElemen] of integer ;Atas : 0..MaxElemenend;var T : Tumpukan ;
Dengan dek laras i d i a tas k i tamenganggap bahwa elementumpukan T, yang tersimpandalam lar ik T.Is i , adalah bert ipe
integer dan banyaknya elementumpukan maksimum adalahsebesar MaxElemen, yang dalam halin i 255 elemen. Tipe data dari medan
Atas harusbi langan bulat antara 0 sampaiMaxElemen, karena nilainyamenunjukkan banyaknya elemenyang ada dalam suatu tumpukan,
-
8/8/2019 Hafizh Stack
9/13
procedure PUSH (Var T : Tumpukan; X: Integer);beginT.Atas := T.Atas + 1;T.Isi[T.Atas] := xend;
operasi push dapat implementas ikan sebagai ber ikut :
procedure PUSH (Var T : Tumpukan; X: Integer);beginif T.Atas := MaxElemen thenwriteln ( Tumpukan Sudah Penuh)else
beginT.Atas := T.Atas + 1; T.Isi[T.Atas] := xendend;
procedure PUSH (Var T : Tumpukan; var Penuh: boolean; x: Integer);beginif T.Atas := MaxElemen then{* Tumpukan sudah penuh *}Penuh := trueelsebeginPenuh := falseT.Atas := inc (T.Atas) ;T.Isi[T.Atas] := x
endend;
J ika kontrol berupa data bert ipe boolean, maka prosedurnya :
-
8/8/2019 Hafizh Stack
10/13
procedure POP (Var T : Tumpukan; X: Integer);beginT.Atas := T.Atas - 1;T.Is i[T.Atas] := xend;
procedure POP (Var T : Tumpukan; X: Integer);beginif T.Atas := MaxElemen thenwriteln ( Tumpukan Sudah KOsong)else
beginT.Atas := T.Atas - 1; T.Isi[T.Atas] := xendend;
operasi pop dapat implementas ikan sebagai ber ikut :
const Elemen = 255;type S255 = string [Elemen];Tumpukan = recordIsi : S255;Atas : 0..Elemenend;var T : Tumpukan;
I : integer;Alfabet : S255;
procedure AWALAN (var T : Tumpukan);
beginT.Atas := 0 ;end;
procedure PUSH (var T : Tumpukan; X:char);beginT.Atas := T.Atas+1;T.Isi := Xend;
function POP (var T : Tumpukan) : char;beginPOP :=T.Isi [T.Atas];T.Atas := T.Atas-1;end;
beginclrscr;Awalan (T);write ('Isikan Data : ');readln (Alfabet);
clrscr;writeln ('Data asli :');writeln(Alfabet);writeln;writeln('Setelah dibalik:');for I := 1 to length (Alfabet) doPUSH (T, Alfabet[I]);for I := 1 to length (Alfabet) dowrite (POP(T));writeln
end.
CONTOH P ROGRAM
-
8/8/2019 Hafizh Stack
11/13
Setelah program di-RUN
Di ENTER
Pemanfaatan stackantara lain untuk menulis ungkapan denganmenggunakan notasi tertentu.Contoh :( A + B ) * ( C D )Tanda kurung selalu digunakan dalam penulisan ungkapan numeris untukmengelompokkan bagian mana yang akan dikerjakan terlebih dahulu.Dari contoh ( A + B ) akan dikerjakan terlebih dahulu, kemudian baru ( C
D ) dan terakhir hasilnya akan dikalikan.A + B * C DB * C akan dikerjakan terlebih dahulu, hasil yang didapat akan berbedadengan hasil notasi dengan tanda kurung
CONTOH PEMANFAATAN STACK
-
8/8/2019 Hafizh Stack
12/13
KESIMPULANKESIMPULAN
PadaPadaSTACKSTACKDataData hanyahanya bisabisa diambildiambil secarasecara
berurutanberurutan,, tidaktidakbisabisa diambildiambil secarasecara langsunglangsung..
HalHal iniini berbedaberbeda dengandengan sistemsistem yangyang adaada padapada
LINKED LISTLINKED LISTdimanadimana datadata dapatdapat diambildiambil
secarasecara acakacak,, bisabisa didi tengahtengah,, didi atasatas atauatau didi
akhirakhir,, bahkanbahkan dapatdapat datadata dapatdapat langsunglangsung
dihapusdihapus..
DaftarDaftar pustakapustaka
HandbookHandbookalogaritmaalogaritma &&strukturstruktur datadata
oleholeh KartikaKartika FirdausyFirdausy, ST. MT., ST. MT.
DiambilDiambil daridari beberapabeberapa sumbersumber dengandengan
bantuanbantuan google.comgoogle.com.. DikarenakanDikarenakan tempattempat
yangyang tidaktidakmemadaimemadai,, untukuntukinformasiinformasi lebihlebihlanjutlanjut dapatdapat menghubungimenghubungi penyusunpenyusun..
HarapHarap maklummaklum..
-
8/8/2019 Hafizh Stack
13/13
ArigatoArigato goZaimasugoZaimasu