110 likes | 360 Views
STRUKTUR DATA. Array. Pengantar Array / Larik. Array atau larik adalah sekumpulan elemen yang bertipe sama . Array merupakan suatu himpunan elemen , terurut dan homogen .
E N D
STRUKTUR DATA Array
PengantarArray / Larik • Array ataularikadalahsekumpulanelemen yang bertipesama. • Array merupakansuatuhimpunanelemen, terurutdanhomogen. • Terurut, kitaartikanbahwaelementersebutdapatdiidentifikasisebagaielemenpertama, elemenkedua, danseterusnyasampaielemenke-n. • Homogenadalahbahwasetiapelemendarisebuah array mempunyaitipe data yang sama. • Deklarasi array padabahasa C++ tipe_datanama_array[elemen]; • Suatu array dapatdigambarkansebagaikotakpanjang yang berisikotak-kotakkecildidalamkotakpanjangtersebut
Elemen Array Contoh: intnilai[6]; 0 1 2 3 4 5 Subscript / Index Array Nilai
Elemenbisadidefinisikanatau pun tidak, danbisalangsungdiberinilaiawal. Contoh : intnilai[]={16, 2, 77 40, 12071}; • Untukmengakses data pada array, gunakannomor index sebagaipenunjuklokasimemori, seperti format ini nama_array[index]; • Index array pada C++ dimulaidari 0
Nilai/data yang adapada array harussamajumlahnyadenganelemen array yang sudahdidefinisikan. • Jikaelemendikosongkan, artinyaandatidakmembatasijumlahnilai yang adapada array tersebut. • Array terbagi 2, yaitu array satudimensidanmultidimensi. • Array dapatjugadijadikanargumen/ parameter sebuahfungsi.
Array 1 Dimensi • Subscript/index dari elemenarraymenentukanposisielemenpadaurutanarray. • Secaraumum, arrayberdimensisatu A dengan tipe T dan subscriptbergerak dari X ke Y, ditulissebagai A(X:Y)= (A(I)), I = X, X+1, X+2, … , Y dan setiapelemen A(I) bertipe data T. • Banyaknyaelemensebuaharraydisebutrentangatau range, makaarray A(X:Y) mempunyai range sebesar Y-X+1
PemetaanArrayDimensiSatuke Storage • Ada beberapacarauntukmenyajikanarraydalammemory. • Skemapenyajiandapatdievaluasiberdasar 4 karakteristik : • Kesederhanaan dari akeselemen • Mudahuntukditelusuri • Efisiensi dari utilitasistorage • Mudahdikembangkan • Misalterdapatarray NIM denganbatasbawahsubscript 1 dan batasatassubscript N. • Storage untukelemen NIM (I+1) adalahberdampingandenganstorageuntukelemen NIM(I).
PemetaanArrayDimensiSatuke Storage • Untukmenghitungalamat (address) awal dari elemen NIM(I) diperlukanhalsebagaiberikut : • Addressawal dari ruangstorage yang dialokasikanbagiarraytersebut • Ukuran dari masing-masingelemenarray. • Misaladdressawal dari array, kitanyatakandengan B, disebutjugadengan base-location. • Misalmasing-masingelemenarraymenduduki S byte. • Makaaddressawal dari NIM(I) adalah : NIM(I) = B + (I-L) * S
PemetaanArrayDimensiSatuke Storage • Contoh Array slogan (dimensi 1) misalkan dipetakankememorimulaialamat5002 (Base address). Kebutuhanmemoritiapelemen (S) = 1 byte. Array slogan (0:6) Alamatawalelemenslogan[i] di memoridihitungsbb : B + (I-L) * S Contoh: Elemenslogan[5] alamatawalnya di memoriadalah: 5002 + (5 – 0) * 1 = 5002 + 5 * 1 = 5007
Array 1 Dimensidalam C++ #include<conio.h> #include<iostream.h> voidmain() { floatnilai[5] = {56.4, 67.6, 57.7, 76.3, 72.5}; inti; for(i=0; i<5; i++) { cout<<"NilaiArray 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.