Kamis, 25 Februari 2010

ARRAY DIMENSI SATU dan ARRAY DIMENSI BANYAK

Array merupakan bagian dasar, yang disebut blok, guna keperluan pembentukan suatu struktur data lain yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik oleh array.

Kita dapat mendefinisikan array sebagai suatu himpunan hingga elemen, terurut dan
homogen. Terurut, kita artikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua, dan seterusnya sampai elemen ke-n. Sedangkan pengertian elemen yang homogen adalah bahwa setiap elemen dari sebuah array tertentu haruslah mempunyai tipe data yang sama.

Jadi suatu array dapat mempunyai elemen semuanya berupa integer atau dapat pula
seluruhnya berupa untai aksara atau string Bahkan dapat pula terjadi bahwa suatu array mempunyai elemen berupa array pula.

Sebenarnya, pengertian array telah banyak kita kenal, dan kita pelajari dalam matematika. Di sana, array lebih terkenal sebagai matriks. Kadang-kadang ia disebut juga sebagai tabel. Juga pernah kita dengar tentang vektor. Vektor adalah bentuk yang paling sederhana dari array. Vektor merupakan array dimensi satu atau one dimensional array

ARRAY DIMENSI SATU

Sebuah array dimensi satu, yang misalnya kita beri nama NILAI

Nilai(1) Nilai(2) Nilai(3) - - - Nilai(n)

Subscript atau indeks dari elemen array menyatakan posisi, elemen pada urutan dalam
array tersebut. Notasi yang digunakan bagi elemen array, biasanya adalah nama array
dilengkapi dengan subcript.

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.

Sebagai contoh, kita dapat menuliskan data hasil pencatatan suhu suatu ruangan setiap
satu jam selama periode 24 jam, dalam sebuah array dimensi satu. Harga minimum dari subscript dari array disebut batas bawah atau lower bound, sedangkan harga maksimumnya disebut batas atas atau upper bound. Jadi pada array di atas, L merupakan batas bawah, dan U batas atas. Sedangkan untuk array ''suhu'' yang
elemennya dapat kita tulis sebagai SUHU(I), batas bawahnya adalah 1 dan batas atasnya
24. SUHU(I) menyatakan suhu pada jam ke-1, dan I memenuhi 1 <= I <= 24, I merupakan
integer.

Batas bawah dari array, pada beberapa aplikasi, tidak selalu diambil 1. Kadangkadang
diambil batas bawah nol, bahkan juga negatif. Banyaknya elemen sebuah array
disebut rentang atau range. Jadi array A(L:U) mempunyai range sebesar U-L+1. Secara
khusus bila L=l dan U=N, maka range dari array A(l:N) adalah N-I+1 = N.

ARRAY DIMENSI BANYAK

Sebuah array dimensi banyak atau multi-dimensional array didefinisikan sebagai sebuah
array yang elemennya berupa array pula. Misal array B mempunyai M elemen berupa
array pula, yang terdiri dari N elemen.

Untuk itu diperlukan dua buah subscript. Yang pertama digunakan untuk menyatakan
posisi baris, sedangkan yang kedua untuk posisi kolom. Secara umum array dimensi dua
B, dengan elemen bertipe data T, subscript baris dari l sampai M, subscript kolom dari l sampai N, ditulis sebagai B(1:M, 1:N) = (B(I,J)), I = 1, 2, ...,M dan J = 1, 2,...,N dengan setiap elemen B(I,J) bertipe data T. Array B tersebut dikatakan berukuran atau berorder M x N. Di sini banyak elemen array adalah M*N.

Contoh dari array dimensi dua sangat banyak kita jumpai. Misalnya nilai ujian 500
mahasiswa Gunadarma tingkat 3, untuk 8 mata kuliah dapat kita sajikan sebagai array
dimensi dua yang berorder 500 x 8. Elemen B(I,J) menyatakan nilai mahasiswa ke-I untuk mata kuliah ke-J. Seperti halnya pada array dimensi satu, pada array dimensi dua batas bawah untuk subscript I maupun J dapat diambil secara umum. Misalnya, batas bawah subscript baris adalah L1 subscript kolom adalah L2 sedangkan batas atas subscript baris adalah U1 dan untuk kolom adalah U2, maka array dimensi dua tersebut dapat dinotasikan sebagai :

B(L1:U1, L2:U2) = (B(I,J)), L1 <= 1 <= U1, L2 <=J <= U2

dengan setiap elemen B(I,J) bertipe data T. Banyaknya elemen pada setiap baris adalah U2 – L2 + 1 dan pada setiap kolom adalah U1–L1+l, sehingga banyaknya elemen pada array B semua ada = (U2-L2 +1) * (U1-L1 +1).

Yang dimaksud dengan cross-section suatu array berdimensi dua adalah pengambilan
salah satu subscript, misalnya subscript baris untuk tetap atau konstan, sementara subscript yang satunya lagi kita ubah-ubah sepanjang rangenya. Notasi yang umum digunakan

Dengan mudah dapat dimengerti bahwa B(11,*) menunjukkan semua elemen pada baris
ke-11. Transpose dari suatu array dimensi dua adalah penulisan baris menjadi kolom (kolom menjadi baris) dari suatu array. Jadi transpose dari array berorder M x N adalah array berorder N x M. Transpose dari array B dinotasikan sebagai BT. Berdasarkan definisi, maka jelas B(I,J) =BT(J,I). Contohnya B(3,5) = BT(5,3).

Pengertian di atas dapat kita perluas untuk array dimensi tiga, dimensi empat, sampai
dimensi N. Array dimensi N kita tulis sebagai :

A(L1:U1, L2:U2, …, LN: UN) = (A(I1, I2, …, IN))

dengan Lk <= Ik <= Uk, untuk setiap k = 1, 2, …, N.

Banyaknya elemen dari array A tersebut adalah :
PI(Uk - Lk + 1) = (U1-L1+1) * (U2 – L2+1) … * (UN -LN + 1)

Contoh array dimensi tiga adalah penyajian data mengenai banyaknya mahasiswa
dari-20 perguruan tinggi di Jakarta, berdasarkan tingkat (tingkat 1, 2 sampai dengan 5), dan jenis kelamin (pria atau wanita). Misalnya array tersebut dinamakan MHS. Ambil sebagai subscript pertama, tingkat : I = 1, 2,...,5; subscript kedua, jenis kelamin (pria = 1, wanita = 2): J = 1,2, dan subscript ke-3, Perguruan Tinggi adalah K = 1,2,...,20. Jadi MHS(4,2,17)

Pengertian cross-section pada array dimensi banyak, adalah sama seperti pada array
dimensi dua. Misalnya MHS(4,*,17) menunjukkan jumlah mahasiswa tingkat 4 dari
perguruan tinggi 17 (masing-masing untuk pria serta wanita). MHS(*,*,3) menun-jukkan
jumlah mahasiswa untuk masing-masing tingkat, pria serta wanita, dari perguruan tinggi 3.

2 komentar: