STRUKTUR DATA
description
Transcript of STRUKTUR DATA
STRUKTUR DATAArray
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];
Elemen1
Elemen2
Elemen3
Elemen4
Elemen5
Elemen6
Array Nilai
0 1 2 3 4 5
Subscript / Index
Elemen Array
• 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 ininama_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
• 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
Elemen1
Elemen2
Elemen3
Elemen4
Elemen5
Elemen6
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
• ContohArray 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) * SContoh: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.