Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array...

19
STRUKTUR DATA STRUKTUR DATA ARRAY Denny Agustiawan,M.pd STMIK Asia Malang – 2011

Transcript of Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array...

Page 1: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

STRUKTUR DATASTRUKTUR DATA

ARRAY

Denny Agustiawan,M.pd

STMIK Asia Malang – 2011

Page 2: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Metode PenyimpananMetode PenyimpananPenyimpanan struktur data dalam

memori komputer dilakukan dengan 2 metode:

Sequential Allocation statisLinked Allocation dinamis

Page 3: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Sequential allocation 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

Ali

Adi

Ari

Avi

1

2

n-1

n

.

.

.

.

.

.

Page 4: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Sequential AllocationSequential AllocationUntuk 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.

Page 5: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

ArrayArray Array 1-dimensi disebut

Vektor Array 2-dimensi disebut

Matriks

Page 6: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Vektor (array 1-dimensi)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.

Page 7: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Vektor (2)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:

A(1)

A(n)

Lo

.

.

.

A(i)

.

.

.

.

LLo = alamat awal elemen pertama array Ac = ukuran satu elemenL = Lo + c(i -1)A[i] = lokasi elemen ke-I array A

Page 8: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Contoh segmen program Contoh segmen program PascalPascal

1: CONST2: n = 1003: VAR4: 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 = 1000c = 2 bytei = 5L = A[5] = 1000 + 2*(5-1)

= 1000 + 8 = 1008

Page 9: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Contoh segmen program Pascal Contoh segmen program Pascal (2)(2)

Contoh 2 :

1: Var2: B : array [5..30] of integer

Lo = 1000B[15] = ?

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

= 1020

Page 10: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Matriks (Array 2-D)Matriks (Array 2-D) Ada 2 cara penyimpanan di

memori:◦ Row Major Order (RMO) ◦ Column Major Order (CMO)

Page 11: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Row Major Order Row Major Order (RMO)(RMO)

Row Major Order (RMO)Data disimpan baris per baris sebagai

sebuah vektor

Contoh: 1: CONST2: n = 4 {jumlah baris}3: m = 3 {jumlah kolom}4: VAR5: A: array [1..n,1..m] of integer

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)

baris – 1 baris – 2 baris – 4

Page 12: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

RMORMORumus pencarian lokasi elemen A[i,j]

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

di mana 1 ≤ i ≤ n 1 ≤ j ≤ m

i = indeks jumlah barisj = indeks jumlah kolomm = jumlah kolomc = ukuran satu elemenLo = alamat elemen awal

Page 13: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

RMORMOContoh: 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

Page 14: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

RMORMOSecara 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

Page 15: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Column Major Order Column Major Order (CMO)(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 A(1,1) A(2,1) A(3,1) A(4,1) A(1,2) … A(4,2) A(1,3) … A(4,3)

kolom – 1 kolom – 3 kolom – 2

Page 16: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

CMOCMORumus CMO

L = Lo + {(i-1) + (j-1) * n} * c1 ≤ i ≤ n, 1 ≤ j ≤ m L = Lo + {(i-l1) + (j-l2) * (u1 – l1 + 1)} *

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

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

1+1)} * 2= 1000 + (2 + 0 * 6) * 2= 1004

Page 17: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

ARRAY 3 DIMENSIARRAY 3 DIMENSIA [i,j,k] 1 ≤ i ≤ 2, 1 ≤ j ≤ 5, 1 ≤ k ≤ 4Rumus Secara umum 1 ≤ i ≤ n1, 1 ≤ j ≤ n2, 1 ≤ k ≤ n3A[i,j,k] = Lo + {(i-1) * n2 * n3 + (j-1) * n3 + (k-1)} * c

Rumus untukArray [l1 .. u1, l2 .. u2, l3 .. u3] of type dataA[i,j,k] = Lo + {(i – l1) * (u2 – l2 + 1) * (u3 – l3 + 1) + (j – l2) * (u3 – l3 + 1) + (k – l3)} * c

Page 18: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Latihan SoalLatihan SoalDiketahui segmen program Pascal sbb:

Consta=2;b=5n=100m=50

VarArray_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;

Page 19: Digital Image Processing - Denny …… · PPT file · Web view · 2013-10-20Array Array 1-dimensi disebut Vektor Array 2-dimensi disebut Matriks Vektor ... Matriks (Array 2-D)

Latihan SoalLatihan SoalJika 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]