Matakuliah
Tahun
Versi
: T0026/Struktur Data
: 2005
: 1/1
Pertemuan 1
Data komposit Array
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mahasiswa dapat menghasilkan program
modular yang menggunakan data
komposit array dua dimensi
2
Outline Materi
•
•
•
•
•
•
•
Definisi Array
Array 1 dimensi
Array 2 dimensi
Operasi array
Akses elemen array
Pointer array
Array sebagai parameter fungsi
3
Definisi Array
•
•
•
•
•
Elemen array : homogen
Tiap elemen : pasangan indeks dan nilai
Hubungan antar elemen : linear
Akses elemen array : random melalui indeks elemen
Penempatan elemen dalam memory : berurutan, secara
logikal dan fisikal
• Jumlah indeks menentukan dimensi array
Suhu [ i ] → 1 dimensi
Suhu [ i ] [ j ] → 2 dimensi
4
Contoh Array 1 Dimensi
int
suhu [4];
variabel
nilai
address
Suhu[0]
25
a
Suhu[1]
26
a + sizeof (int)
Suhu[2]
26
a + 2 sizeof (int)
Suhu[3]
27
a + 3 sizeof (int)
Jika a base address, maka
Address suhu [i] = a + i * sizeof (int)
5
Array 1 dimensi
• Deklarasi :
elemen_type
a[u0];
• Jumlah elemen u0,
Indeks : 0, 1, … u0-1
Address a [i] :
a [i] = a + i * sizeof (elemen_type)
6
Array 2 dimensi
Representasi array multidimensi :
1. RMO : Row Major Order
2. CMO : Column Major Order
Selanjutnya akan dibahas RMO
Array 2-d (seperti tabel, terdiri dari baris dan
kolom) dianggap sebagai array 1-d, dimana
satu elemen array 1-d terdiri dari sejumlah nilai
(kolom)
7
Contoh array 2-dimensi
tiap row terdapat 30 elemen
size = 30 * sizeof (int)
a[0]
25
26
...
26
a[1]
26
27
...
27
a[2]
26
27
...
28
a[3]
27
26
...
28
4 Row
Jika i, j, a adalah indeks row, column, dan base
address, maka
Address a[ i ][0] = a + i * { 30 sizeof (int) }
Address a[ i ][ j ] = address a[ i ][0] + j * sizeof (int)
= a + { i * 30 + j } * sizeof (int)
8
Array 2 Dimensi
• Deklarasi : elemen_type
a[u0] [u1];
• Jumlah elemen u0 * u1,,
• Indeks :
[0][0], [0][1], … [0][u1-1], [1][0], [1][1], … [1][u1-1], … ,
[u0-1][0], [u0-1][1], … [u0-1][u1-1]
Address a[ i ][ j ] =
a + { i * u1 + j } * sizeof (elemen_type)
9
Jumlah Elemen Array
Array n-dimensi
a [u0] [u1] ... [un-1]
n 1
Jumlah elemen ui
0
suhu [10] → u0 =10 → Jumlah elemen = 10
suhu [30][10] → u0 =30 u1 =10 → Jumlah elemen = 300
suhu [365][30][10] → u0 =365 u1 =30 u2 =10 → Jumlah
elemen = 109500
10
Operasi Array
1. Create
2. Retrieve
3. Store
int a[10]
x = a [i]
a[i] = y
11
Contoh operasi Retrieve dan Update pada Array
0
1
2
3
4
5
1
0
2
3
4
5
40 20 30 10 25 60
10 25 40 50 60 20
Array A
Array B
C[ i ] = A[ i ] + B[ n-i+1 ]
0
1
2
3
4
5
60 80 80 50 50 70
Array C
Operasi Retrieve ?
Operasi Update ?
Programming ?
12
Akses Elemen Array (1)
void isi_array (int b[ ], int n)
{
int i;
for (i=0; i<n; i++) b [i] = i*10;
}
void main( )
{
int bil [7], i;
isi_array (bil, 7 );
ubah_array (bil, 7);
}
13
Akses Elemen Array (2)
void ubah_array (int *b, int n)
{
int i;
for (i=0; i<n; i++)
*(b+i) *= 2;
}
14
Array dan Pointer
int bil[7], *b, i, x;
b = bil;
for (i=0; i<7; i++)
printf ("indeks = %d address = %x
bil = %d\n", i, b+i, *(b+i));
atau
printf ("indeks = %d address = %x
bil = %d\n", i, &bil [i], bil [i]);
15
Akses Array 2-D
void cetak_array (int b[ ][N])
void display (int **data) {
…data[i][j]…
}
void main() {
int
**data;
data = new int *[m];
// SET UP THE ROWS
for (j = 0; j < m; j++)
data[j] = new int [n]; // SET UP THE COLUMN
…data[i][j] …
16
Array sebagai parameter fungsi
Contoh potongan program array:
…
char LeftMost(char S[])
{
return(S[0]); };
char RightMost(char S[])
{
return(S[Len(S)-1]);};
void main()
{
char MyString[MaxLen);
…
printf(“Leftmost elemen
printf(“Rightmost elemen
…
};
:%c”,LeftMost(MyString));
:%c”,RightMost(MyString));
17
© Copyright 2026 Paperzz