hafizh stack

Upload: rahmat-karunia-galib

Post on 10-Apr-2018

233 views

Category:

Documents


0 download

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