Struktur Data 4

Embed Size (px)

Citation preview

  • 8/19/2019 Struktur Data 4

    1/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 11

    Struktur Data (Data Structures) 

    FLORIDA DAMANIK

    ( 4 SKS )

    STMIK MIKROSKIL MEDAN2014

  • 8/19/2019 Struktur Data 4

    2/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 22

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    - Queue = Antrian- Elemen yan !ertama kali masuk ke antrian akan keluar

    !ertama kalinya

    - DEQ"E"E adala# meneluarkan satu elemen dari suatu

     Antrian

    - Antrian da!at di$uat denan menunakan% Liniear Array 

    dan Circular Array

  • 8/19/2019 Struktur Data 4

    3/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan &&

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    1. QUEUE DENGAN LINIEAR ARRAY 

    - Terda!at satu $ua# !intu masuk di suatu u'un dan satu $ua#

    !intu keluar di u'un satunya

    - Se#ina mem$utu#kan aria$el )ead dan Tail

    0 1 2 3 4 5 6 7 Max = 7

    Head = -1Tail = -1

    DEKLARASI QUEUE

    *de+ine MA,

    ty!ede+ stru.t/

    int dataMA,

    int #ead

    int tail

    3 Queue

    Queue antrian

  • 8/19/2019 Struktur Data 4

    4/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 44

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    OPERASI-OPERASI PADA QUEUE

    - Create()

    o "ntuk men.i!takan dan meninisialisasi Queueo Denan .ara mem$uat )ead dan Tail = -1

    0 1 2 3 4 5 6 7 Max = 7

    Head = -1

    Tail = -1 Antrian !ertama kali

    oid Create(5/

    antrian#ead=antriantail=-13

  • 8/19/2019 Struktur Data 4

    5/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 77

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    o "ntuk memeriksa a!aka# Antrian suda# !enu# atau $elum

    o Denan .ara memeriksa nilai Tail8 'ika Tail = -1 maka em!tyo Kita tidak memeriksa )ead8 karena )ead adala# tanda untuk

    ke!ala antrian (elemen !ertama dalam antrian5 yan tidak

    akan $eru$a#u$a#

    o 9ererakan !ada Antrian ter'adi denan !enam$a#an

    elemen Antrian ke$elakan8 yaitu menunakan nilai Tail

    - IsEmpty()

    0 1 2 3 4 5 6 7 Max = 7

    Head = -1

    Tail = -1

     Antrian Koson karena Tail = -1

    int !"#$ty(5/

    i+(antriantail==-15

    return 1

    else

    return 03

  • 8/19/2019 Struktur Data 4

    6/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 66

    QUEUE DENGAN MENGGUNAKAN ARRAY - IsFull()

    o "ntuk mene.ek a!aka# Antrian suda# !enu# atau $elum

    o Denan .ara mene.ek nilai Tail8 'ika Tail := MA,-1 (karena

    MA,-1 adala# $atas elemen array !ada ;5 $erarti suda#

    !enu#

    0 1 2 3 4 5 6 7 Max = 7

    Head = 0

     Antrian !enu# karena

    Tail = Ma< -1

    Tail = 7

    int !%ull(5/i+(antriantail==MA,-15 return 1

    else return 0

    3

  • 8/19/2019 Struktur Data 4

    7/24

  • 8/19/2019 Struktur Data 4

    8/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    o Diunakan untuk men#a!us elemen terde!anC!ertama dari

     Antriano Denan .ara menurani .ounter Tail dan meneser

    semua elemen antrian kede!an

    o 9eneseran dilakukan denan menunakan loo!in

    - e&ueue()

    0 1 2 3 4 5 6 7 Max = 7

    Head = 0 Tail = 3

    e&ueue()

    0 1 2 3 4 5 6 7 Max = 7

    Head = 0 Tail = 3Tail = 2 Ma'u semua8 tail --

  • 8/19/2019 Struktur Data 4

    9/24

  • 8/19/2019 Struktur Data 4

    10/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1010

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    0 1 2 3 4 5 6 7 Max = 7

    Head = -1

    Tail = -1

    - Clear()

    oid Clear (5/antrian#ead=antriantail=-1

    !rint+(>data .lear>5

    3

  • 8/19/2019 Struktur Data 4

    11/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1111

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    - Ta#$il()

    o "ntuk menam!ilkan nilai-nilai elemen Antrian

    o Menunakan loo!in dari #ead sCd tail

    oid Ta#$il(5/

    i+(IsEm!ty(5==05/

    +or(int=antrian#eadi=antriantailiBB5/

    !rint+(>?d >8antriandatai533else

    !rint+(>data koson@Fn>5

    3

  • 8/19/2019 Struktur Data 4

    12/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1212

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    2. QUEUE DENGAN IRULAR ARRAY 

    ;ir.ular Array adala# Array yan menyeru!ai se$ua# linkaran

    denan titik aGal ()ead5 dan titik ak#ir (Tail5

    0

    12

    3

    4 7

    65

    Head

    Tail

    elara!i *ueue

    ;lass Queue;ir.ular % !u$li. Queue

    /

      9riate %

    ty!eQueueH Data

    int )ead

    int Tail

    !u$li. %

    Queue;ir.ular(5

    / )ead = 0

    Tail = Ma

  • 8/19/2019 Struktur Data 4

    13/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1&1&

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    +$era!i ,$era!i dala# Circular Array

    ,n!trut,r 

    Neruna untuk men.i!takan Queue yan $aru dan koson8dan mem$erikan nilai aGal (#ead5 = 0 dan nilai ak#ir (Tail5

    denan 'umla# ma

  • 8/19/2019 Struktur Data 4

    14/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1414

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    !"#$ty

    Neruna untuk mene.ek a!aka# Queue masi# koson atau

    suda# $erisi Mene.ek a!aka# Tail masi# terletak

    $erse$ela#an denan )ead dan Tail le$i# $esar dari )ead

    atau tidak Oika $enar maka Queue masi# koson

    Al.,rit#a !"#$ty

    Nool Queue;ir.ular % IsEm!ty(5/

      Peturn (((Tail B 15 ? MA,Q"E"E5 == )ead5

    3

    0

    12

    3

    4 7

    65

    Tail = 4

    Head = 5!"#$ty = true

  • 8/19/2019 Struktur Data 4

    15/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1717

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    !%ull (enu)

    Al.,rit#a !%ull

    Nool Queue;ir.ular % Isull(5/

      Peturn ((Tail B 25 ? MA,Queue == )ead5

    3

    0

    12

    3

    4 7

    65

    10

    2030

    40

    50

    60 70

    Head = 0

    Tail = 6

    !%ull == True

  • 8/19/2019 Struktur Data 4

    16/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 1616

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    "n*ueue (Add*ueue) 

    Menam$a# se$ua# elemen kedalam Queue Tail dan )ead mula

    mula $ernilai 0Al.,rit#a "n*ueue

    ty!eQueue Queue;ir.ular % EnQueue(ty!eQueue elemen5

    / I ( @ Isull(55

    /  Tail = (( Tail B 15 ? MA,Q"E"E5

    3

    DataTail = elemen

    Peturn elemen3

  • 8/19/2019 Struktur Data 4

    17/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 11

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    "n*ueue (Add*ueue) "n*ueue (15 *)

    0

    12

    3

    4 7

    65

    Head = 0

    Tail = 7

    !%ull() == %al!e

    ,t %ull

    0

    12

    3

    4 7

    65

    15

    Tail = 0

    Head = 0

    Tail = (71) '

     88 Tail = 0ata 90: = 15

  • 8/19/2019 Struktur Data 4

    18/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 11

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    e*ueue

    Men#a!us se$ua# elemen dari Queue Maka )ead $er!inda#

    satu lanka# ke$elakanAl.,rit#a e*ueue

    ty!eQueue Queue;ir.ular % DeQueue(5

    /ty!eQueue Tem!

      i+ ( @ IsEm!ty(55  /Tem! = Data)ead

      )ead = (( )ead B 15 ? MA,Queue5 3

      Peturn Tem!

    3 0

    12

    3

    4 7

    65

    15

    2030

    40

    50

    Head = 0

    Tail = 4

    !"#$ty() == %al!e

    Te#$ = ata90:

    Te#$ = 15

  • 8/19/2019 Struktur Data 4

    19/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 11

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    e*ueue ()

    0

    12

    3

    4 7

    65

    15

    2030

    40

    50

    Head = 1

    Tail = 4

    Head = ( 0 1 ) 7

     88 Head = 1

    ;eturn 15

    QUEUE DENGAN MENGGUNAKAN ARRAY

  • 8/19/2019 Struktur Data 4

    20/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 2020

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    C,nt, a!u!

    am$arkan Queue denan Im!lementasi Array Ma< 68 'enis

    elemen adala# ;#ar8 kemudian tuliskan #asil dari R!erasi$erikut se.ara $erturut-turut %

    a Makeull (Q5

    $ EndQueue (a8 Q5

    . EndQueue ($8 Q5

    d 9enu# (Q5

    e EndQueue (.8 Q5

    + DeQueue (Q5

    ront (Q5

    # DeQueue (Q5

    i Koson (Q5

     ' DeQueue (Q5

    k Koson (Q5

    nya ?

    a Maeull (*)

    0

    12

    3

    4 5

    Head

    Tail

  • 8/19/2019 Struktur Data 4

    21/24

    QUEUE DENGAN MENGGUNAKAN ARRAY

  • 8/19/2019 Struktur Data 4

    22/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 2222

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    d enu (*)

    0

    12

    3

    4 5

    a

    >

    Head

    Tail ((Tail 2) Max/*ueue == Head)

    (( 1 2 ) 5 == 0)  3 == 0

      enu == %al!e

    e "nd*ueue (c *)

    0

    12

    3

    4 5

    Head

    Tail

    a

    >c

    Tail = Tail 1

    Tail = 2

    QUEUE DENGAN MENGGUNAKAN ARRAY

  • 8/19/2019 Struktur Data 4

    23/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 2&2&

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    @ e*ueue (*)

    0

    12

    3

    4 5

    Head = 1

    TailHead = ( Head 1)

    Head = ( 0 1)Head = 1

    a

    >c

    . %r,nt (*) = >

    %r,nt = Head

    e*ueue (*)

    0

    12

    3

    4 5

    Head = 2

    Tail

    a

    >c

    Head = ( Head 1)

    Head = ( 1 1)

    Head = 2

    QUEUE DENGAN MENGGUNAKAN ARRAY

  • 8/19/2019 Struktur Data 4

    24/24

    12 Maret 201612 Maret 2016 STMIK Mikroskil MedanSTMIK Mikroskil Medan 2424

    QUEUE DENGAN MENGGUNAKAN ARRAY 

    i ,!,n. (*)

    ((Tail 1) Max/*ueue) == Head

    ((2 1) 5) == 23 == 2%al!e

      e*ueue (*)

    0

    12

    3

    4 5

    Head = 3Tail

    a

    >c

    Head = ( Head 1)

    Head = ( 2 1)

    Head = 3

    ,!,n. (*)

    ((Tail 1) Max/*ueue) == Head

    ((2 1) 5) == 3

    3 == 3True