4. Stack(New)

Embed Size (px)

DESCRIPTION

Konsep dari stack atau tumpukan dalam struktur data menggunakan bahasa pemrograman pascal

Citation preview

  • 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