Materi Pertemuan 5-1

Download Report

Transcript Materi Pertemuan 5-1

STRUKTUR DATA
Array
Pengantar Array / Larik
• Array atau larik adalah sekumpulan elemen yang bertipe
sama.
• Array merupakan suatu himpunan elemen, terurut dan
homogen.
• Terurut, kita artikan bahwa elemen tersebut dapat
diidentifikasi sebagai elemen pertama, elemen kedua, dan
seterusnya sampai elemen ke-n.
• Homogen adalah bahwa setiap elemen dari sebuah array
mempunyai tipe data yang sama.
• Deklarasi array pada bahasa C++
tipe_data nama_array[elemen];
• Suatu array dapat digambarkan sebagai kotak panjang
yang berisi kotak-kotak kecil didalam kotak panjang
tersebut
Contoh:
int nilai[6];
Elemen Array
Elemen
1
Elemen
2
Elemen
3
Elemen
4
Elemen
5
Elemen
6
0
1
2
3
4
5
Subscript / Index
Array Nilai
• Elemen bisa didefinisikan atau pun
tidak, dan bisa langsung diberi nilai
awal. Contoh :
int nilai[]={16, 2, 77 40,
12071};
• Untuk mengakses data pada array,
gunakan nomor index sebagai penunjuk
lokasi memori, seperti format ini
nama_array[index];
• Index array pada C++ dimulai dari 0
• Nilai/data yang ada pada array harus
sama jumlahnya dengan elemen array
yang sudah didefinisikan.
• Jika elemen dikosongkan, artinya anda
tidak membatasi jumlah nilai yang ada
pada array tersebut.
• Array terbagi 2, yaitu array satu
dimensi dan multidimensi.
• Array dapat juga dijadikan argumen/
parameter sebuah fungsi.
Array 1 Dimensi
Elemen
1
Elemen
2
Elemen
3
Elemen
4
Elemen
5
Elemen
6
• Subscript/index dari elemen array menentukan
posisi elemen pada urutan array.
• Secara umum, array berdimensi satu A dengan
tipe T dan subscript bergerak dari X ke Y, ditulis
sebagai A(X:Y)= (A(I)), I = X, X+1, X+2, … , Y dan
setiap elemen A(I) bertipe data T.
• Banyaknya elemen sebuah array disebut
rentang atau range, maka array A(X:Y)
mempunyai range sebesar Y-X+1
Pemetaan Array Dimensi Satu
ke Storage
• Ada beberapa cara untuk menyajikan array
dalam memory.
• Skema penyajian dapat dievaluasi berdasar 4
karakteristik :
•
•
•
•
Kesederhanaan dari akes elemen
Mudah untuk ditelusuri
Efisiensi dari utilitasi storage
Mudah dikembangkan
• Misal terdapat array NIM dengan batas bawah
subscript 1 dan batas atas subscript N.
• Storage untuk elemen NIM (I+1) adalah
berdampingan dengan storage untuk elemen
NIM(I).
Pemetaan Array Dimensi Satu
ke Storage
• Untuk menghitung alamat (address) awal dari
elemen NIM(I) diperlukan hal sebagai berikut :
• Address awal dari ruang storage yang dialokasikan bagi
array tersebut
• Ukuran dari masing-masing elemen array.
• Misal address awal dari array, kita nyatakan
dengan B, disebut juga dengan base-location.
• Misal masing-masing elemen array menduduki
S byte.
• Maka address awal dari NIM(I) adalah :
NIM(I) = B + (I-L) * S
Pemetaan Array Dimensi Satu
ke Storage
• Contoh
Array slogan (0:6)
Array slogan (dimensi 1) misalkan dipetakan ke
memori mulai alamat 5002 (Base address).
Kebutuhan memori tiap elemen (S) = 1 byte.
Alamat awal elemen slogan[i] di memori dihitung sbb :
B + (I-L) * S
Contoh:
Elemen slogan[5] alamat awalnya di memori adalah:
5002 + (5 – 0) * 1 = 5002 + 5 * 1 = 5007
Array 1 Dimensi dalam C++
#include<conio.h>
#include<iostream.h>
void main()
{
float nilai[5] = {56.4, 67.6, 57.7, 76.3, 72.5};
int i;
for(i=0; i<5; i++)
{
cout<<"Nilai Array Index ke - "<<i<<" = ";
cout<<nilai[i]<<endl;
}
getch();
}
Latihan
• Sebuah array bola berdimensi satu bertipe char bergerak
dari subscript 0 sampai 9 dengan base addres 35424
– Hitung berapa range nya.
– Gambarkan pemetaan dalam storage bila diisi data [intermilan].
– Elemen ke berapakah data “m” dan berapa alamat memorinya.
• Sebuah array nim berdimensi satu bertipe int bergerak
dari subscript 5 sampai 8 dengan base address 523
– Hitung berapa range nya.
– Gambarkan pemetaan dalam storage bila diisi data
[234,567,234,984].
– Berapa alamat awal dari 984?
• Diketahui sebuah elemen “k” dari array [kurangasin]
mempunyai alamat memory 8900. Jika “k” adalah
subscript ke 4 dan tipe datanya char, berapakah
subscript terakhir dan gambarkan pemetaan dalam
storage.