+ All Categories
Home > Documents > PERTEMUAN 4-5 List, Stack1Connected List 2. Circular List 3. Doubly-linked List 4. Multi list...

PERTEMUAN 4-5 List, Stack1Connected List 2. Circular List 3. Doubly-linked List 4. Multi list...

Date post: 11-Feb-2021
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
40
Struktur Data List, Stack [email protected] putuastawa.wordpress.com Putu Putra Astawa
Transcript
  • StrukturData

    List, Stack

    [email protected]

    putuastawa.wordpress.com

    Putu Putra Astawa

  • Beberapa Jenis Struktur Data

    1.Array

    1.Linear List

    2.Stack

    3.Queue

    1.

    Ap

    a?

    2.

    Ba

    ga

    ima

    na

    ca

    raim

    ple

    me

    nta

    sin

    ya

    ?

    Putu Putra Astawa

    3.Queue

    2.List

    1.Connected List

    2.Circular List

    3.Doubly-linked List

    4.Multi list structure

    3.Tree Structure

    2.

    Ba

    ga

    ima

    na

    ca

    raim

    ple

    me

    nta

    sin

    ya

    ?

  • Linear List

    Linear List

    Putu Putra Astawa

  • ApakahLinear List itu?

    •Sekumpulanelemenyang diatursecaraterurut

    ][

    ,],1

    [],

    [],1

    [,

    ],2[

    ],1[nx

    kx

    kx

    kx

    xx

    LL

    +−

    •Linear List tidaksamadenganConnected-List

    ][

    ,],1

    [],

    [],1

    [,

    ],2[

    ],1[nx

    kx

    kx

    kx

    xx

    LL

    +−

  • OperasipadaLinear List

    No.

    Operasi

    1M

    en

    am

    ba

    hk

    an

    se

    bu

    ah

    ele

    me

    n s

    eb

    elu

    m e

    lem

    en

    ke

    -k

    2M

    en

    gh

    ap

    us

    ele

    me

    n k

    e-k

    2M

    en

    gh

    ap

    us

    ele

    me

    n k

    e-k

    3M

    em

    ba

    ca

    /me

    nu

    lis i

    si

    ele

    me

    n k

    e-k

    4M

    en

    ca

    ri e

    lem

    en

    de

    ng

    an

    ke

    y t

    ert

    en

    tu

    5M

    en

    gg

    ab

    un

    gk

    an

    be

    be

    rap

    a l

    ist

    me

    nja

    di

    sa

    tu

    6M

    em

    ec

    ah

    se

    bu

    ah

    lis

    t k

    e b

    eb

    era

    pa

    bu

    ah

    7M

    en

    gc

    op

    y s

    eb

    ua

    h l

    ist

    8M

    en

    gh

    itu

    ng

    ba

    ny

    ak

    ny

    ae

    lem

    en

    da

    lam

    se

    bu

    ah

    list

  • List, Stack & Queue

    •Tidaksemuaoperasilist diperlukanpadasetiapprogram

    ▫Penentuanstrukturdata didasarkanpadaoperasiyang

    diperlukansajaagar bisaberjalandenganefisien

    •PadasebuahLinear List, penyisipandanpenghapusan

    elemendapatdijalankandisebarangposisi

    Putu Putra Astawa

    •PadasebuahLinear List, penyisipandanpenghapusan

    elemendapatdijalankandisebarangposisi

    •Bentukkhususlinear list:

    Penambahanelemendanpenghapusannya

    dilakukandiposisiterdepanatau

    posisiterbelakangsaja

    Sta

    ck

    Qu

    eu

    e

    Stack danQueue jugamerupakansalahsatujenislist

  • List, Stack & Queue

    •PadasebuahLinear List, penyisipandanpenghapusan

    elemendapatdijalankandisebarangposisi

    •Penambahandanpenghapusanelemenpadastack/queue

    dilakukandiposisiterdepanatauposisiterbelakangsaja

    Putu Putra Astawa

    12

    63

    45

    12

    63

    45

    12

    63

    45

    Lis

    t

    Sta

    ck

    Qu

    eu

    e

  • Stack

    Stack

    Putu Putra Astawa

  • Apakah Stack itu ?

    Putu Putra Astawa

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    Putu Putra Astawa

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPUSH: Menambahkanelemenpadasebuah

    stack

    1PUSH

    top

    ==

    bo

    tto

    m

  • Apakah Stack itu ?

    •Penambahan dan penghapusan elemen dilakukan pada

    elemen list yang terletak di paling depan

    •Yang dihapus adalah elemen yang paling terakhir

    Putu Putra Astawa

    ditambahkan

    •Nama lain:LIFO (Last In First Out)

    •Operasi PUSH: Menambahkan elemen pada sebuah

    stack

    PUSH

    12to

    p

    bo

    tto

    m

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    Putu Putra Astawa

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPUSH: Menambahkanelemenpadasebuah

    stack

    PUSH

    123

    bo

    tto

    m

    top

  • ApakahStack itu?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    Putu Putra Astawa

    •Namalain:LIFO (Last In First Out)

    •OperasiPUSH: Menambahkanelemenpadasebuah

    stack

    PUSH

    1234

    bo

    tto

    m

    top

  • ApakahStack itu?

    •Penambahan dan penghapusan elemen dilakukan pada

    elemen list yang terletak di paling depan

    •Yang dihapus adalah elemen yang paling terakhir

    ditambahkan

    •Nama lain:LIFO (Last In First Out)

    •Operasi PUSH: Menambahkan elemen pada sebuah

    Putu Putra Astawa

    •Operasi PUSH: Menambahkan elemen pada sebuah

    stack

    PUSH

    12345

    bo

    tto

    m

    top

  • ApakahStack itu?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPUSH: Menambahkanelemenpadasebuah

    Putu Putra Astawa

    •OperasiPUSH: Menambahkanelemenpadasebuah

    stack

    PUSH

    123456

    bo

    tto

    m

    top

  • ApakahStack itu?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    Putu Putra Astawa

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    123456

    bo

    tto

    m

    top

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    Putu Putra Astawa

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    12345

    bo

    tto

    m

    top

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    Putu Putra Astawa

    •Namalain:LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    1234

    bo

    tto

    m

    top

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    Putu Putra Astawa

    •Namalain:LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    123

    bo

    tto

    m

    top

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    Putu Putra Astawa

    •Namalain

    LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    12

    bo

    tto

    m

    top

  • Apakah Stack itu ?

    •Penambahandanpenghapusanelemendilakukanpada

    elemenlist yang terletakdipaling depan

    •Yang dihapusadalahelemenyang paling terakhir

    ditambahkan

    •Namalain:LIFO (Last In First Out)

    •OperasiPOP: Menghapussebuahelemendarisebuah

    Putu Putra Astawa

    •OperasiPOP: Menghapussebuahelemendarisebuah

    stack

    POP

    1to

    p=

    =b

    ott

    om

  • Apakah Stack itu ?

    Putu Putra Astawa

    PUSH

    dan

    POP

  • Stack Overflow & Stack Underflow

    •Stack Overflow

    Menambahkandata padasebuahstack yang telahpenuh

    •Stack Underflow

    Putu Putra Astawa

    •Stack Underflow

    Menghapusdata darisebuahstack yang sudahkosong

  • Operasi Stack

    4 3 2 1

    1 2 3 4

    O U T

    I N

    Putu Putra Astawa

    •Push : digunakan untuk menambah item pada stack pada tumpukan

    paling atas

    •Pop :digunakan untuk mengambil item pada stack pada tumpukan paling

    atas

    •Clear :digunakan untuk mengosongkan stack

    •IsEmpty :fungsi yang digunakan untuk mengecek apakah stack sudah

    kosong

    •IsFull :fungsi yang digunakan untuk mengecek apakah stack sudah penuh

    14

  • Stack w

    ith Array of Struct

    •Definisikan Stackdengan menggunakan suatu struct

    •Definisikan konstanta MAX_STACKuntuk

    menyimpan maksimum isi stack

    •Elemen struct Stack adalah array datadan top untuk

    Putu Putra Astawa

    •Elemen struct Stack adalah array datadan top untuk

    menadakan posisi data teratas

    •Buatlah variabel tumpuksebagai implementasi dari

    struct Stack

    •Deklarasikan operasi-operasi/function di atas dan buat

    implemetasinya

  • Program Stack

    •intstk[10];

    •inttop;

    Putu Putra Astawa

  • Program Stack (2)

    Inisialisasi Stack

    •Pada mulanya isi topdengan -1, karena array dalam

    bahasa C dimulai dari 0, yang berarti bahwa data stack

    Putu Putra Astawa

    adalah KOSONG!

    •Topadalah suatu variabel penanda dalam Stack yang

    menunjukkan elemen teratas data Stack sekarang. Top

    Of Stackakan selalu bergerak hingga mencapai MAX of

    STACK yang menyebabkan stack PENUH!

  • Program Stack (2)

    // inisialisasistack

    stack()

    Putu Putra Astawa

    Ilustrasi Stack pada saat inisialisasi!

    stack()

    {top=-1;

    }

  • Program Stack (3)

    Fungsi IsFull

    •Untuk memeriksa apakah stack sudah penuh?

    •Dengan cara memeriksa top of stack, jika sudah sama

    dengan MAX_STACK-1 maka full, jika belum (masih

    Putu Putra Astawa

    dengan MAX_STACK-1 maka full, jika belum (masih

    lebih kecildari MAX_STACK-1) maka belum full

  • Program Stack (4)

    •IlustrasiStack padakondisiFull

    // fungsipenambahanelemenstack

    Putu Putra Astawa

    // fungsipenambahanelemenstack

    void push(intx)

    {if(top > 9)

    {cout<<"stack over flow";

    return;

    }stk[++top]=x;

    cout<<"Elemenstack : " <<x

    <<endl;}

  • Program Stack (5)

    Fungsi IsEmpty

    •Untuk memeriksa apakah data Stack masih kosong?

    •Dengan cara memeriksa top of stack, jika masih -1 maka berarti

    data Stack masih kosong!

    Putu Putra Astawa

    data Stack masih kosong!

    //fungsimenampilkanelemenstack

    void display()

    {if(top<0)

    {cout<<" stack Kosong"<<endl;

    return;

    } for(inti=top;i>=0;i--)

    cout<<stk[i] <<" " << endl;

    }

  • Program Stack (6)

    Fungsi Push

    •Untuk memasukkan elemen ke data Stack. Data yang

    diinputkan selalumenjadi elemen teratas Stack (yang

    ditunjuk oleh ToS)

    Putu Putra Astawa

    ditunjuk oleh ToS)

    •Jika data belum penuh,

    ▫Tambah satu (increment) nilai top of stacklebih

    dahulu setiap kali ada penambahan ke dalam array

    data Stack.

    ▫Isikan data baru ke stack berdasarkan indeks top of

    stack yang telah di-increment sebelumnya.

    •Jikatidak, outputkan“Penuh”

  • Program Stack (7)

    Putu Putra Astawa

  • //fungsipenghapusanelemenstack

    void pop()

    {

    Putu Putra Astawa

    {if(top <0)

    {cout<<"stack under flow";

    return;

    } cout<<"menghapusElemenStack : "

    <<stk[top--]<< endl;

    }

  • Program Stack (8)

    Fungsi Pop

    •Untuk mengambil data Stack yang terletak paling atas

    (data yang ditunjuk oleh TOS).

    Putu Putra Astawa

    •Tampilkan terlebih dahulunilai elemen teratas

    stack dengan mengakses indeksnya sesuai dengan top of

    stacknya, baru dilakukan di-decrement nilai top of

    stacknya sehingga jumlah elemen stack berkurang.

  • Program Stack (9)

    Putu Putra Astawa

  • //fungsimenampilkanelemenstack

    void display()

    {if(top<0)

    Putu Putra Astawa

    if(top<0)

    {cout<<" stack Kosong"<<endl;

    return;

    } for(inti=top;i>=0;i--)

    cout<<stk[i] <<" " << endl;

    }

  • Program Stack (10)

    •Fungsi Print

    •Untuk menampilkan semua elemen-elemen data Stack

    •Dengan cara me-loop semua nilai array secara terbalik,

    karena kita harus mengakses dari indeks array tertinggi

    Putu Putra Astawa

    karena kita harus mengakses dari indeks array tertinggi

    terlebih dahulu baru ke indeks yang lebih kecil!

  • Program Stack (11)

    Putu Putra Astawa

  • Putu Putra Astawa


Recommended