Anda di halaman 1dari 12

Linear Array

Linear Array (biasa disebut Array) adalah salah satu bentuk


struktur data yang bersifat Linear (continue). Nilai data Array
harus homogen (bertipe data sama).
Array merupakan koleksi data dimana setiap elemen memakai
nama yang sama dan bertipe sama dan setiap elemen diakses
dengan membedakan index array-nya.
ARRAY BERDIMENSI SATU
Representasi (Pemetaan) di memori
Memori komputer untuk pemetaan linear array dibentuk secara linear
pula. Memori memiliki alamat (address), ibarat suatu komplek
perumahan. Sebagai identifikasi, maka rumah-rumah tsb diberi nomor
yang urut dalam pola yang tertentu (misalnya dari kecil ke besar).
Pemetaan di memori juga berfungsi sebagai identifikasi letak data,
agar kelak data tsb dapat diambil kembali, maka akan dengan tepat
ditemui data tersebut.

Array Dimensi Satu


Banyaknya alamat di memori tergantung dari jenis komputer yang
digunakan, misalnya dari alamat 000000 hingga FFFFFF (dalam sistem
bilangan Hexadesimal). Setiap alamat dapat ditempati oleh data sebesar
satu byte.
Ketika kita memasukkan data baru, maka komputer akan mencatat
dimana data itu disimpan. Elemen data pertama yang disimpan dalam
alamat memori disebut dengan Base Address (B).
***
Jika kita memiliki 20 nilai data dalam variabel ber-subscript A yang
masing-masing memerlukan 8 byte data dan base addressnya di 1000
berada di alamat berapakah mulainya nilai data A yang ke-18 disimpan ?

Berikut gambaran pemetaan data A di memori

Array Dimensi Satu


Lihat gambar dibawah ini, nilai data A (18)
dismpan mulai dari alamat 1136 di memori.
1008

A(1)

1024

A(2)

1000

A(3)

1040

A(4)

A(5)

A(6)

1032

1016

1104

1056

A(7)

1112

A(9)

1128

1088

A(10)

1064

1136

A(12) A(13) A(14) A(15) A(16) A(17)


1096

A(8)

1048

1120

1072

1080

1152

A(18)

A(19) A(20)

1144

A(11)

1160

Formula
Perhitungan Alokasi Memory
Kita dapat membuat rumusannya, yaitu :
Array
AD = B + (SK-1) * LD

Keterangan :
AD

Posisi alamat awal dari nilai data yang akan dicari

Base Address

SK

Subscript ke berapa yang akan dicari

LD

Lebarnya data yang dapat disimpan di setiap alamat memori


AD = B + (SK-1) * LD
AD = 1000 + (18-1) * 8
AD = 1000 + 17 * 8
AD = 1000 + 136
AD = 1136

Array dengan C++


DEKLARASI ARRAY DENGAN C++
Perlu diperhatikan bahwa C++ secara otomatis akan menyediakan
lokasi memori sesuai dengan yang dideklarasikan, dimana nomor
indeks selalu dimulai dari 0.
Berikut adalah contoh variabel bernama C yang mempunyai 5 (lima)
lokasi memori yang semuanya bertipe int.

C[0]

- 45

C[1]

Masing-masing nilai dalam setiap lokasi


mempunyai identitas berupa nama (C) dan
nomor indeks yang dituliskan didalam tanda
kurung siku [ ]

C[2]

Sebagai contoh : 72 adalah nilai dari C [3].

C[3]

72

C[4]

1543

Nilai indeks merupakan suatu ekspresi.

Array dengan C++


DEKLARASI ARRAY DENGAN C++
Variabel array dideklarasikan dengan mencantumkan tipe dan nama
variabel yang diikuti dengan banyaknya lokasi memori yang ingin
dibuat. Dengan demikian, deklarasi untuk variabel array C diatas
adalah :
int C[5]
Perlu diperhatikan bahwa C++ secara otomatis akan menyediakan
lokasi memori sesuai dengan yang dideklarasikan, dimana nomor
indeks selalu dimulai dari 0. Nilai suatu variabel array dapat juga
diinisialisasi secara langsung pada saat deklarasi, misalnya :
int C[5] = { - 45, 0, 6, 72, 1543 }
Berarti setiap lokasi memori dari variabel array C langsung diisi
dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal.

Contoh: Array dimensi satu dengan


C++
#include <stdio.h>
int main ()
{
int square[100];
int i; /*loop index */;
int k; /*the integer */
/*calculate the squares */
for (i=0;i<10;i++){
k=i+1;
square [ i ]=k*k;
printf(\n pangkat dari %d adalah %d, k, square[ i ]);
}
return 0;
}

Contoh: Array dengan C++


#include <stdio.h>
#define dsize 40
#define fsize 11
main()
{
int indeks,jawaban;
int respon[dsize]={1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,10,3,8,2,7,
6,5,7,6,8,6,7,5,6,6,5, 6,7,5,6,4,8,6,8,10};
int freq[fsize]={0};
for(indeks=0;indeks<=dsize-1;indeks++)
++freq[respon[indeks]];
printf("%s%17s\n","rating","frekuensi");
for(jawaban=1;jawaban<=fsize-1;jawaban++)
printf("%6d%17d\n",jawaban,freq[jawaban]);
return 0;
}

Latihan
a) Jika kita memiliki 25 nilai data dalam variabel ber-subscript A
yang masing-masing memerlukan 8 byte data dan base
addressnya di 100 berada di alamat berapakah mulainya nilai
data A yang ke-23 disimpan ?
b) Jika kita memiliki 35 nilai data dalam variabel ber-subscript B
yang masing-masing memerlukan 4 byte data dan base
addressnya di 1500 berada di alamat berapakah mulainya nilai
data A yang ke-33 disimpan ?
c) Jika kita memiliki 75 nilai data dalam variabel ber-subscript C
yang masing-masing memerlukan 10 byte data dan base
addressnya di 900 berada di alamat berapakah mulainya nilai
data A yang ke-65 disimpan ?
1. Buatlah perhitungannya dengan rumus !
2. Buatlah gambarannya !

Thanks

Anda mungkin juga menyukai