array dan record
Sebuah array dapat dikatakan
sebagai suatu himpunan terurut
dengan elemen-elemen homogen. Terurut, dimaksudkan bahwa elemen
pertama, elemen kedua, dst masing-masing dapat diidentifikasi. Sedangkan homogen berarti masing-masing elemen
tersebut mempunyai tipe data yang sama.
Array dapat dikelompokkan atas 2 bagian,
yaitu :
1.
Array satu dimensi.
2.
Array multi dimensi.
1.1
ARRAY SATU DIMENSI
Bentuk array yang paling
sederhana adalah array satu dimensi. Array jenis ini dapat dianggap sebagai
sebuah vektor. Suatu array A berdimensi satu dengan N buah elemen, secara fisik
dapat digambarkan sebagai berikut :
A(1)
|
A(2)
|
.....
|
A(I)
|
.....
|
A(n)
|
Indeks dari elemen suatu array
menyatakan posisinya dalam urutan secara umum suatu array A berdimensi satu
dengan elemen berjenis data T yang mempunyai indeks dari L s/d U dituliskan
sbb: A(L:U) = {A(I)}
Untuk I = L, L+1, L+2, ................., U-1, U, dimana masing-masing A(I) berjenis data T.
L disebut sebagai batas bawah dari
indeks A dan U sebagai batas atas dari A.
Jumlah elemen dalam suatu array disebut sebagai range.
Range dari array A(L:U) adalah U - L + 1.
Range dari array B(1:N) adalah N - l + 1= N.
1.2
ARRAY MULTI DIMENSI
Array dua dimensi adalah
salah satu contoh dari array jenis multi dimensi (dimensi banyak). Array ini elemen-elemennya
merupakan array pula. Bentuk yang dianggap dapat mewakili array dua dimensi ini
adalah matriks. Suatu array B yang
terdiri atas M elemen dimana masing-masing elemennya berupa array dengan N
elemen, dapat digambarkan sebagai suatu tabel MxN, dengan bentuk sbb:
1
|
2
|
3
|
...
|
J
|
...
|
N
|
|
1
|
|||||||
2
|
|||||||
3
|
|||||||
...
|
|||||||
I
|
|||||||
...
|
|||||||
M
|
Array ini dituliskan : B(1:M,1:N) = {B(I,J)},
Untuk I = 1,2,...,M
J
= 1,2,...,N
Jumlah elemen (range) dari array B ini adalah M x N.
Secara umum, array 2 dimensi B
dengan batas bawah indeks pertama L1, batas atas indeks pertama U1, batas bawah
indeks kedua L2 batas atas indeks kedua U2,
dituliskan:
B(L1 : U1, L2 : U2) = {B(I,J)}
Untuk
L1 < I < U1 dan L2 < J < U2
Jumlah elemen baris dari array B adalah : ( U2
– L2 + 1 )
Jumlah elemen kolom dari array B adalah : ( U1 - L1 + 1)
Jumlah total elemen array B adalah : (U2
– L2 + 1 )(U1 - L1 + 1)
1.2.1
CROSS SECTION
Yang dimaksud dengan Cross
section dari array 2 dimensi adalah suatu himpunan yang anggotanya adalah
elemen-elemen dalam satu baris saja atau satu kolom saja. Notasinya menggunakan
*.
Contoh : Misal diberikan array B(1:M,1:N).
B(4,*)
= {B(4,1), B(4,2), ...,B(4,N)}
B(*,4)
= {B(1,4), B(2,4), ...,B(M,4)}
1.2.2
TRANSPOSE
Transpose dari suatu
array dua dimensi, adalah suatu array dua dimensi pula dengan menukar posisi
indeksnya. Transpose dari array
berukuran M x N adalah suatu array
berukuran N x M. Transpose dari
suatu array dari B dinotasikan dengan BT, dan didefinisikan: B(I,J)
= BT (J,I)
Selanjutnya secara umum, suatu array
A berdimensi N dapat dituliskan sbb:
A(L1:U1,L2:U2,...,LN:UN)
Jumlah elemen array ini adalah : N
(U1 - L1 + 1)(U2- L2+ 1)... (UN - LN + 1) (UK - LK + 1)
k=1
Sebagai contoh perhatikan sebuah array berdimensi 3 yang
menggambarkan (berisi) jumlah mahasiswa STMIK Asia untuk kelas reguler dan eksekutif.
Array ini dapat digambarkan sbb :
Jika array ini diberi nama Asia,
maka bentuknya dapat dituliskan sbb:
Asia(1:2,1:2, A:E) = {Asia(i,j,k)}
dimana I
= 1,2 (1 = pria, 2 = wanita)
J = 1,2 (1 = reguler, 2 = eksekutif)
K
= A,B,C,D,E (kelas A s/d E)
Seluruh mahasiswa reguler dapat
ditunjukkan dengan Asia (*,1,*)
sedangkan seluruh mahasiswa eksekutif
dapat ditunjukkan dengan Asia (*,2,*)
1.3
DEKLARASI ARRAY DALAM BAHASA PEMROGRAMAN.
Misal diberikan array dengan
nama A yang mempunyai 24 elemen dengan masing-masing elemen berjenis data
integer, maka deklarasinya dalam bahasa pemrograman adalah sbb: VAR
A : ARRAY [1..24] OF INTEGER;
Dalam mendeklarasikan suatu array ada 3 hal yang harus
ada pada deklarasi tersebut, yaitu:
1. Nama array
2. Range dari indeksnya
3. Tipe elemen-elemen datanya
1.4
PEMETAAN ARRAY KE STORAGE
Ada beberapa cara untuk menyatakan suatu array pada storage, tetapi
konsepnya hampir sama dengan apa yang ada pada data fungsi.
1.4.1
ARRAY SATU DIMENSI
Misal diberikan array satu
dimensi dengan nama A yang mempunyai indeks 1 s/d N, yaitu A(1:N). Secara fisik
array A(1:N) dapat digambarkan sbb:
A(1)
|
A(2)
|
A(3)
|
...
|
A(I)
|
...
|
A(N)
|
Yang perlu kita ketahui disini adalah letak elemen ke I
dari array A(1:N), atau letak masing-masing elemen array pada storage. Letak
suatu elemen biasanya disebut sebagai starting address atau starting
location atau base location. Untuk mengetahui starting address suatu elemen array,
perlu diketahui lebih dulu antara lain :
- Starting address dari array yang bersangkutan.
- Ukuran masing-masing elemen array atau ruang yang digunakan masing-masing elemen array.
Misal starting
address dari array A(1:N) adalah B dan masing-masing elemennya menggunakan
ruang sebanyak S bit. Maka starting address elemen ke I dari array
A(1:N) adalah : B + ( I - 1 ) * S
Hal ini disebabkan ada (I - 1) elemen array A, masing-masing dengan
ukuran atau panjang S secara fisik mendahului elemen ke I pada array tersebut.
Secara umum dapat dikatakan bahwa :
Starting
address elemen ke I dari array A(L:U) adalah (B +( I – L ) * S jika starting address array A adalah B dan
masing-masing elemenya menggunakan ruangan sebanyak S bit.
1.4.2
ARRAY MULTI DIMENSI
Prinsip yang digunakan disini
tetap didasarkan pada array satu dimensi. Oleh karena itu untuk array multi
dimensi, linierisasi-nya dapat dilakukan berdasarkan baris atau kolom.
Contoh : Misal diberikan array A(1:3,1:4). Array ini secara fisik dapat digambarkan sbb :
1
|
2
|
3
|
4
|
|
1
|
||||
2
|
||||
3
|
Linierisasi menurut baris akan mengakibatkan
bentuk diatas menjadi :
1
|
2
|
3
|
Jika B adalah starting
address array A(1:3,1:4) dan S adalah ruang yang digunakan oleh
masing-masing elemennya, maka starting address dari elemen A(I,J) adalah : B +
(I-1) * 4 * S + (J-1) * S
Hal ini karena ada ( I - 1) baris, masing-masing dengan panjang 4 * S
yang mendahului baris dimana elemen A(I,J) berada dan ada (J-1) elemen masing-masing dengan panjang S yang
mendahului elemen A(I,J) pada baris ke I.
Contoh Dari array A(1:3,1:4)
akan dicari starting adress elemen
A(2,4).
baris
|
1
|
baris
|
2
|
baris
|
3
|
A(2,4)
Starting address A(2,4) =
B + (2 - 1) * 4 * S + (4 - 1) * S
=
B + 7 * S
Secara umum elemen A(I,J) dari array A(l:U,L:U) mempunyai starting
address :
B
+ (I-L1)
* (U2-L2+1) * S +
(J-L2) *
S
Alternatif lain untuk linierisasi adalah dengan
menggunakan cara kolom jika diberikan array A(1:3,1:4) diatas, maka bentuk
linierisasinya :
Jika B adalah starting address dari array A(1:4,1:6) dan
S adalah ruang digunakan untuk masing-masing elemennya, maka starting address
dari A(I,J) adalah :
B + (J - 1) * 4 * S + (I - 1) * S
Hal ini disebabkan ada (J - I) kolom masing-masing dengan 4 elemen
yang panjangnya s yang mendahului kolom tempat elemen A(I,J) berada dan ada
(I-1) elemen masing-masing dengan panjang S yang mendahului elemen A(I,J) pada
kolom ke J.
Secara umum dapat dikatakan bahwa elemen A(I,J) dari
array A(L1:U1,L2:U2), menurut
kolom mempunyai starting address : B +
(J-L2) *
(U1-L1+1) * S +
(I-L1) *
S
Jika starting adress array tersebut adalah B dan
masing-masing elemenya menggunakan ruang sebanyak S bit.
Contoh : Misal diberikan array K(1:4,1:6) dengan
starting address B dan masing-masing elemenya menggunakan ruang S bit. Maka
starting adress dari elemen k(2,4) adalah :
= B + (4 - 1) * (4-1+1) * S +
(2 - 1) * S
=
B + 3 * 4* S + 1 * S
=
B + 13 * S
1.5
RECORD
Record adalah himpunan dari
elemen-elemen yang heterogen. Heterogen adalah
elemen-elemennya dapat mempunyai tipe data yang berbeda.
Beberapa hal yang perlu diketahui dalam record sbb:
1.
ELEMENTARY ITEM adalah suatu field yang
tidak mempunyai subfield.
2.
GROUP ITEM adalah suatu field yang
mempunyai subfield.
3. TUPEL adalah
gabungan atribut yang menjadi suatu informasi dari proses basis data.
Contoh RECORD :
PEGAWAI
Job Tittle
|
Emp. No
|
Pay Rate
|
Name
|
Telp. No
|
Analys
|
00012724
|
1.000.000
|
Bob Geldof
|
7801725
|
Programmer
|
00023451
|
800.000
|
Ceu Rika
|
7521475
|
( String(20) )
|
( String(8) )
|
( Real(9,2) )
|
( String(25) )
|
( String(7) )
|
Record-record yang
tipenya sama : FILE.
Untuk menyatakan suatu data dalam record yang mempunyai
identifikasi yang khusus, maka harus punya 1 field khusus yang disebut KEY (kunci field).
1.6
DEKLARASI RECORD DALAM BAHASA PEMROGRAMAN
PROGRAM DALAM PASCAL
Type
Pegawai
= Record;
Job_Tittle : String[20];
Emp_No : String[8];
Pay_Rate
: Real;
Name : String[25];
Telp_No : String[7];
End;
sangat jelas...
BalasHapuslebih efektif dan efisien menggunakan array atau record
BalasHapustitanium pipe | TITanium Stone-Titanium-Art
BalasHapusTitanium stone-titanium-art · 2.5 oz. · 3 oz. · titanium sia 4 oz. · 5 oz. · winnerwell titanium stove 6 power supply titanium oz. · 7 oz. · 8 2019 ford ecosport titanium oz. · 9 nano titanium babyliss pro oz. · 10 oz. · 11 oz. · 12 oz.