Digital Image Processing - Denny PPT fileWeb view2013-10-20Array Array 1-dimensi disebut Vektor...

download Digital Image Processing - Denny PPT fileWeb view2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D) Row Major Order (RMO)

of 19

  • date post

    28-Apr-2018
  • Category

    Documents

  • view

    227
  • download

    7

Embed Size (px)

Transcript of Digital Image Processing - Denny PPT fileWeb view2013-10-20Array Array 1-dimensi disebut Vektor...

  • STRUKTUR DATA

    ARRAY

    Denny Agustiawan,M.pd

    STMIK Asia Malang 2011

    *

  • Metode Penyimpanan

    Penyimpanan struktur data dalam memori komputer dilakukan dengan 2 metode:

    Sequential Allocation statisLinked Allocation dinamis

  • Sequential allocation

    Dengan sequential allocation alamat sebuah elemen akan dapat ditentukan jika telah diketahui nomor urut / indeks yang menunjukkan posisi elemen dan kapasitas memori yang digunakan untuk setiap elemen

  • Sequential Allocation

    Untuk menyimpan n sejumlah data harus didefinisikan terlebih dahulu besarnya memori / jumlah tempat yang digunakan untuk menyimpan data tersebut. Sebaliknya, jika tempat yang disediakan berlebih, maka terjadi pemborosan memori, sehingga metode ini disebut Metode Pengalamatan Statis. Contoh paling sederhana dari sequential allocation ini adalah ARRAY.

  • Array

    Array 1-dimensi disebut VektorArray 2-dimensi disebut Matriks

  • Vektor (array 1-dimensi)

    Biasanya digunakan untuk menyatakan suatu daftar yang mempunyai urutan tertentu (tidak boleh bolak-balik) Diawali sebuah ordered-list, misal: Jan, Feb, , Des. Jika dilakukan alokasi memori (misal: 100 byte), maka alokasi memori yang dipesan akan terletak secara berurutan & tidak terpencar-pencar, mulai elemen pertama hingga terakhir.

  • Vektor (2)

    Untuk sebuah vektor n elemen, yang tiap elemennya membutuhkan c byte, maka total memori yang dialokasikan sebesar c * n byte dengan struktur alokasi vektor sbb:

    Lo = alamat awal elemen pertama array A

    c = ukuran satu elemen

    L = Lo + c(i -1)

    A[i] = lokasi elemen ke-I array A

  • Contoh segmen program Pascal

    1: CONST

    2: n = 100

    3: VAR

    4: A : array [1..n] of integer

    Misalkan elemen pertama (Lo) berada pada offset 1000, c = 2 byte maka, pada offset ke berapakah elemen ke-5 = A[5] ?

    Jawab:

    Lo = 1000

    c = 2 byte

    i = 5

    L = A[5] = 1000 + 2*(5-1)

    = 1000 + 8 = 1008

  • Contoh segmen program Pascal (2)

    Contoh 2 :

    1: Var

    2: B : array [5..30] of integer

    Lo = 1000

    B[15] = ?

    Jawab :

    B[15] = 1000 + 2.(15-5) = 1000 + 20 = 1020

  • Matriks (Array 2-D)

    Ada 2 cara penyimpanan di memori:

    Row Major Order (RMO)

    Column Major Order (CMO)

  • Row Major Order (RMO)

    Row Major Order (RMO)

    Data disimpan baris per baris sebagai sebuah vektor

    Contoh:

    1: CONST

    2: n = 4 {jumlah baris}

    3: m = 3 {jumlah kolom}

    4: VAR

    5: A: array [1..n,1..m] of integer

    baris 1

    baris 2

    baris 4

    A(1,1)A(1,2)A(1,3)A(2,1)A(2,2)A(2,3)A(4,1)A(4,2)A(4,3)

  • RMO

    Rumus pencarian lokasi elemen A[i,j] secara RMO

    L = Lo + { (i-1) * m + (j-1) } * c

    di mana 1 i n

    1 j m

    i = indeks jumlah baris

    j = indeks jumlah kolom

    m = jumlah kolom

    c = ukuran satu elemen

    Lo = alamat elemen awal

  • RMO

    Contoh: Lo = 1000, c =2 , n =4, m = 3

    A[3,2] = ?

    A[3,2] = 1000 + {(3-1)*3 + (2-1)} * 2

    = 1000 + 7 * 2

    = 1000 + 14

    = 1014

  • RMO

    Secara umum: untuk matriks yang mempunyai lower bound lk dan upperbound uk, maka:

    L = Lo + {(i-l1) * (u2 l2 + 1) + (j l2)} * c

    Array [1 .. 6 ; 2 .. 5]

    l1 = 1; l2 = 2; u1 = 6; u2 = 5

    B[3,2] = 1000 + {(3-1) * (5-2+1) + (2 2)} * 2 = 1000 + (2*4 + 0) * 2 = 1016

  • Column Major Order (CMO)

    Column Major Order (CMO)

    Prinsip penyimpanan mirip dengan RMO, hanya saja data disimpan kolom per kolom sebagai sebuah vector

    Misal: matriks A dengan dimensi 4 baris & 3 kolom

    kolom 1

    kolom 3

    kolom 2

    A(1,1)A(2,1)A(3,1)A(4,1)A(1,2)A(4,2)A(1,3)A(4,3)

  • CMO

    Rumus CMO

    L = Lo + {(i-1) + (j-1) * n} * c

    1 i n, 1 j m

    L = Lo + {(i-l1) + (j-l2) * (u1 l1 + 1)} * c

    A[3,2] = 1000 + {(3-1) + (2-1) * 4} * 2

    = 1000 + (2+4) * 2 = 1012

    B[3,2] = 1000 + { (3-1) + (2-2) * (6-1+1)} * 2

    = 1000 + (2 + 0 * 6) * 2

    = 1004

  • ARRAY 3 DIMENSI

    A [i,j,k]

    1 i 2, 1 j 5, 1 k 4

    Rumus

    Secara umum 1 i n1, 1 j n2, 1 k n3

    A[i,j,k] = Lo + {(i-1) * n2 * n3 + (j-1) * n3 + (k-1)} * c

    Rumus untuk

    Array [l1 .. u1, l2 .. u2, l3 .. u3] of type data

    A[i,j,k] = Lo + {(i l1) * (u2 l2 + 1) * (u3 l3 + 1) + (j l2) * (u3 l3 + 1) + (k l3)} * c

  • Latihan Soal

    Diketahui segmen program Pascal sbb:

    Const

    a=2;

    b=5

    n=100

    m=50

    Var

    Array_A : Array [1..1000] of string[30];

    Array_B : Array [1..b,1..m] of integer;

    Array_C : Array [a..m,b..n] of real;

    Array_D : Array [m..n] of boolean;

  • Latihan Soal

    Jika Lo = 1000, maka tentukan:

    Array_A[57]

    Array_A[82]

    Array_B[3,43] secara RMO

    Array_B[4,44] secara CMO

    Array_C[3,99] secara RMO

    Array_C[m-a,n-b] secara CMO

    Array_C[m-a,n-b] secara RMO

    Array_B[b-3,m-(b*2)] secara CMO

    Array_D[n-m]

    Array_D[77]

    *