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. ARRAY 1 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)
|
Vektor adalah bentuk yang sederhana dari array, yang merupakan array dimensi satu. Secara umum, suatu array dimensi satu A dengan tipe data T dan subscript bergerak
dari L sampai dengan U, ditulis sebagai A(L:U) = (A(l)), I = L, L+1, L+2,..., U, dan setiap elemen A(l) bertipe data T.
dari L sampai dengan U, ditulis sebagai A(L:U) = (A(l)), I = L, L+1, L+2,..., U, dan setiap elemen A(l) bertipe data T.
BENTUK UMUM
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 sampai dengan 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 : 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.
DEKLARASI ARRAY DALAM BAHASA PEMROGRAMAN
Misalkan : Hasil pencatatan temperatur suhu ruangan dalam 1 hari (24 jam)
1 2 3 24
28
|
30
|
29
|
...
|
30
|
Disimpan dalam array TEMP sebagai berikut : TEMP (1:24)
Deklarasi :
PASCAL
var TEMP : Array[1..24] of integer;
BASIC
DIM TEMP(24)
COBOL
01 TABEL-TEMP
02 TEMP OCCURS 24 TIMES PIC 99.
ARRAY MULTI DIMENSI
Adalah suatu array yang setiap elemennya merupakan tipe data array pula.
Jika array B terdiri dari M elemen, yang setiap elemennya terdiri dari suatu array dengan N elemen, maka array B dapat digambarkan sebagai berikut :
1 2 3 ... N
L2 U2
L1 1
| |||||
2
| |||||
.
.
.
| |||||
U1
M
|
Memiliki 2 index (baris dan kolom).
Dalam hal ini kita perlu memberi 2 harga subskrip untuk mengidentifikasikan masing-masing elemen pada array dimensi dua, yaitu :
· Subskrip pertama menunjukkan baris dari array,
· Sedangkan subskrip kedua menunjukkan kolom dari array.
BENTUK UMUM
Misal :
Array B dengan tipe data T, subskrip baris dari L1 sampai U1, subskrip kolom dari L2 sampai U2, ditulis sebagai;
B(L1:U1,L2:U2)
Banyaknya elemen adalah : (U1 - L1 +1) * (U2 - L2 +1)
DEKLARASI ARRAY DALAM BAHASA PEMROGRAMAN
Misal : Menyajikan nilai ujian dari 100 mahasiswa tingkat 2 sebanyak 8 mata kuliah.
1 2 3 ... 100
L2 U2
L1 1
|
A
|
C
|
A
| ||
2
| |||||
.
.
.
| |||||
U1
8
|
B
|
Disimpan dalam array NILAI sebagai berikut :
NILAI(1:8, 1:100)
Deklarasi :
PASCAL
Var NILAI : array[1..8, 1..100] of char;
BASIC
Dim NILAI(8,100)
COBOL
01. TABEL-NILAI
02. BRS OCCURS 8 TIMES
03. KOLOM OCCURS 100 TIMES PIC X.
CROSS SECTION (Penampang Array Berdimensi-2)
Adalah pengambilan salah satu subskrip.
Misal : Baris = tetap/konstan
Kolom = berubah-ubah (*)
Contoh : B(*,4) = semua elemen pada kolom ke-4.
B(2,*) = semua elemen pada baris ke-2.
Pengertian cross-section pada array dimensi banyak, adalah sama seperti pada array dimensi dua.
Misal :
MHS(4,*,17) = jumlah mahasiswa tingkat 4 dari perguruan tinggi 17 (masing-masing untuk pria dan wanita).
MHS(*,*, 3) = jumlah mahasiswa untuk masing-masing tingkat, pria dan wanita, dari perguruan tinggi 3.
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 Gunadarma untuk kelas pagi dan malam.
Array ini dapat digambarkan sbb :
Gunadarma(1:2,1:2,1:5) = {Gunadarma(i,j,k)}
dimana I = 1,2 (1 = pria, 2 = wanita)
J = 1,2 (1 = pagi, 2 = malam)
K = 1,2,3,4,5 (kelas 1 s/d 5)
Seluruh mahasiswa pagi dapat ditunjukkan dengan Gunadarma (*,1,*)
sedangkan seluruh mahasiswa malam dapat ditunjukkan dengan :
Gunadarma(*,2,*)
MAPPING KE STORAGE DARI ARRAY
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 :
1. Starting address dari array yang bersangkutan.
2. 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 rungan sebanyak S bit.
MAPPING KE STORAGE : ARRAY MULTI DIMENSI.
Prinsip yang digunakan disini tetap didasarkan pada array satu dimensi. Oleh karena itu untuk array multi dimensi, linierisasinya 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
RECORD
Record adalah himpunan dari elemen-elemen yang heterogen.
Heterogen adalah elemen-elemennya dapat mempunyai tipe data yang berbeda.
Elemen dari suatu record disebut field.
Field adalah suatu area dari record yang menggunakan suatu informasi tertentu.
Record adalah himpunan dari elemen-elemen yang heterogen.
Heterogen adalah elemen-elemennya dapat mempunyai tipe data yang berbeda.
ELEMENTARY ITEM adalah suatu field yang tidak mempunyai subfield.
GROUP ITEM adalah suatu field yang mempunyai subfield.
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).
DEKLARASI RECORD DALAM BAHASA PEMROGRAMAN
PROGRAM DALAM COBOL
DATA DIVISION.
01 PEGAWAI.
02 JOB_TITTLE PIC X(20).
02 EMP_NO PIC X(8).
02 PAY_RATE PIC 9(2) V 9(2).
02 NAME PIC X(25).
02 TELP_NO PIC X(7).
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;
No comments:
Post a Comment
silahkan komentar di sini.. :) be carefull yaaaa