STRUKTUR ARRAY
1.
Pengertian
Struktur
Struktur adalah kumpulan elemen-elemen data yang digabungkan
menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan
sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda.
Walaupun field-field tersebut berada dalam satu kesatuan, masing-masing field
tersebut tetap dapat diakses secara individual.
Field-field tersebut digabungkan
menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya anda
ingin mencatat data-data mahasiswa dan pelajar dalam sebuah progam, untuk
membedakannya anda dapat membuat sebuah record mahasiswa yang terdiri dari
field NIM, NAMA, ALAMAT, dan IPK serta sebuah record pelajar yang terdiri dari
field-field NAMA, NOMOR_URUT, ALAMAT< dan JUM_NILAI. Dengan demikian akan
lebih mudah untuk membedakan keduanya.
2. Pengertian Array
Array atau larik sendiri di
definisikan sebagai pemesanan alokasi memory berurutan. Definisi ini kurang
tepat, karena terjadi kerancuan antara struktur data dan representasinya.
Memang benar array hampir selalu di implementasikan menggunakan memory
berurutan tapi tidak selalu demikian. Semua elemem array bertipe sama. Array
cocok untuk organisasi kumpulan data homogen yang ukuran atau jumlah elemen
maksimumnya telah diketahui dari awal. Homogen adalah bahwa setiap elemen dari
sebuah array tertentu haruslah mempunyai tipe data yang sama.
Dari perngertian struktur dan
pengertian array di atas, maka dapat ditarik kesimpulan bahwa struktur array
adalah kumpulan elemen-elemen data yang digabungkan menjadi suatu kesatuan yang
memiliki tipe homogen (sama).
a. Karakteristik Array
1. Mempunyai batasan dari pemesanan alokasi memori (bersifat
statis).
2. Mempunyai tipe data sama (bersifat homogen).
3. Dapat diakses secara acak.
4. Deklarasi Array
Ada tiga hal yang harus diketahui dalam pendeklarasian,
yaitu :
1. Type data array.
2. Nama variable array.
3. Subkrip / index array.
Contoh
deklarasai array adalah sebagai berikut :
int A[10], artinya variabel A adalah
kumpulan data sebanyak 10 bilangan bertipe integer.
3. Penggunaan Array
Pada dasarnya penggunaan array
sangat luas tidak hanya digunakan pada bahasa pemrogaman. Contoh penggunaan
array sebagai berikut :
a. Array digunakan untuk suatu
database, contoh : tabel.
b. Array digunakan untuk operasi
matematika seperti vektor.
c. Digunakan dalam bentuk struktur data
lain, contohnya list.
4. Pengurutan Array
Pengurutan atau sorting adalah
proses yang paling sering dilakukan dalam pengolahan data, pengurutan dibedakan
menjadi dua, yaitu :
1.
Pengurutan internal
Pengurutan dilakukan terhadap
sekumpulan data di media memory internal komputer di mana data dapat diakses
elemennya secara langsung.
2.
Pengurutan eksternal
Pengurutan data di memory sekunder.
Biasanya data bervolume besar sehingga tidak mampu dimuat semuanya di memory
utama.
5. Operasi Dasar Pada Array
Operasi terhadap elemen array
dilakukan dengan pengaksesan langsung. Nilai di masing-masing posisi elemen
dapat di ambil dan nilai dapat disimpan tanpa melewati posisi-posisi lain.
Terdapat dua operasi, yaitu :
1. Operasi terhadap satu elemen/posisi
array
2. Operasi terhadap array sebagai
keseluruhan
Dua operasi paling dasar terhadap
satu elemen/posisi adalah :
1. Penyimpanan nilai elemen ke posisi
tertentu di array
2. Pengambilan nilai elemen dari posisi
tertentu di array
Operasi-operasi dasar terhadap array secara keseluruhan
adalah :
1. Operasi penciptaan
2. Operasi penghancuran
3. Operasi pemrosesan tranversal
4. Operasi pencarian (table look-up)
5. Operasi sorting
a. Penyimpanan dan Pengambilan Nilai
Saat penyimpanan dan pengambilan
nilai array, biasanya bahasa pemrogaman menyediakan sintaks tertentu untuk penyimpanan
dan pengambilan nilai elemen pada posisi tertentu di array. Contoh :
A[5] = 78, berarti penyimpanan nilai
78 ke posisi ke-5 dari array A
C = A[5], berarti pengambilan nilai
elemen posisi ke-5 dari array A
b. Penciptaan dan Penghancuran
Operasi penciptaan biasa disebut
inisialisasi. Operasi ini untuk mempersiapkan struktur data untuk
operasi-operasi berikutnya. Operasi penghancuran menyatakan ketidak berlakuan
struktur data atau membebaskan memory, menyerahkan memory ke manajemen memory agar
dapat di pergunakan keperluan lain. Operasi penghancuran penting terutama bila
struktur data di implementasikan secara dinamis menggunakan pointer.
c. Pemrosesan Tranversal
Operasi pemrosesan transversal
adalah pemrosesan mengolah seluruh elemen secara sistematik.
d. Pencarian di Array (table look-up)
Pencarian di array (table look-up)
adalah proses pencarian suatu nilai di array. Klasifikasi pencarian di array
adalah :
a) Pencarian sekuen (sequential
searching), yaitu :
1. Tanpa boolean, terbagi :
o
Tanpa sentinen
o
Dengan sentinen
2. Menggunakan boolean
b) Pencarian secara biner/dokotom
(binary = dochotomy searching).
5.
Bentu-Bentuk Array
A. Array Satu Dimensi
Array satu dimensi yaitu kumpulan
elemen-elemen identik yang hanya terdiri dari satu baris atau hanya satu kolom
saja alamat penyimpanan data (indeks). Elemen-elemen tersebut memiliki tipe
data yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Bentuk umum :
Tipe_data namaArray[n] = {elemen0,
elemen1, elemen2,…..,n};
n = jumlah elemen
contoh pada progam : int ukur[5] =
{39, 40. 41, 38, 40};
- int adalah tipe data yang berupa
bilangan bulat.
- Ukur adalah nama variabel array.
- [5] adalah ukuran untuk menyatakan
jumlah maksimal elemen array.
- {..} adalah tempat pemberian
nilai/elemen array.
B. Array Dua Dimensi
Array dua dimensi sering digambarkan
sebagai sebuah matriks, merupakan perluasan dari array satu dimensi. Jika array
satu dimensi hanya terdiri dari sebuah baris dan beberapa kilom elemen, maka
array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen bertipe
sama sehingga dapat digambarkan sebagai berikut :
Bentuk umum :
Tipe_data namaArray [m][n] =
{{a,b,…z},{1,2,…,n-1}};
contoh : int lulus[4][3];
- Nilai 4 untuk menyatakan banyaknya
baris dan 3 untuk menyatakan banyaknya kolom.
Pendeklarasian array dua dimensi
hampir sama dengan pendeklarasian array satu dimensi, kecuali bahwa array dua
dimensi terdapat dua jumlah elemen yang terdapat dikurung kurung siku dan
keduanya boleh tidak sama. Elemen array dua dimensi diakses dengan menuliskan
kedua indeks elemennya dalam kurung.
Pemetaan (mapping) array dua dimensi
ke storage :
Terbagi dua cara pandang
(representasi) yang berbeda :
o
@M[i][j] = M[0][0] + {(j – 1) * K
+ (i – 1)} * L
|
Secara kolom per kolom (coloumn
major order / CMO)
o
@M[i][j] = M[0][0] + {(i – 1) * N
+ (j – 1)} * L
|
Secara baris per baris (row major
order / RMO)
Keterangan
:
- @M[i][j] = Posisi array yang di cari.
- M[0][0] = Posisi alamat awal indeks
array.
- i = Baris
- j = Kolom
- L = Ukuran memory type data
- K = Banyaknya elemen per kolom
- N = Banyaknya elemen per baris.
C. Array MultiDimensi
Array ini seperti array dimensi dua tetapi
dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini
tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang
dibutuhkan banyak, maka array ini sangat memegang peranan yang penting.
Bentuk umum pendeklarasian array multidimensi :
Tipe_data namaArray[ukuran1][ukuran2]…[ukuranN];
Sebagai contoh :
int data_huruf[2][8][8];
contoh di atas merupakan pendeklarasian array data_huruf
sebagai array berdimensi tiga.
6. Keunggulan Array
Keunggulan array adalah sebagai berikut :
a. Array sangat cocok untuk pengaksesan
acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui
elemen-elemen lain.
b. Jika berada di suatu lokasi elemen,
maka sangat mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu
atau elemen peberus.
c. Jika elemen-elemen array adalah
nilai-nilai independen dan seluruhnya harus terjaga, maka penggunaan
penyimpanannya sangat efisien.
7. Kelemahan Array
Kelemahan array adalah sebagai berikut :
Array mempunyai fleksibilitas rendah, sehingga tidak cocok
untuk berbagai aplikasi karena array mempunyai batasan sebagai berikut :
a.
Array harus bertipe homogen, kita
tidak dapat mempunyai array dimana satu elemenadalah karakter, elemen yang lain
adalah bilangan atau tipe lain.
b.
Kebanyakan bahasa pemrogaman
mengimplementasikan array statik yang sulit diubah ukurannya di waktu eksekusi.
Bila penambahan dan pengurangan terjadi terus-menerus, maka representasi statis
:
o Tidak efisien dalam penggunaan
memory
o Menyiakan banyak waktu komputasi
o Pada suatu aplikasi, representasi
statis tidak dimungkinkan
c.
Bila penambahan dan pengurangan
terjadi terus-menerus, maka representasi statis (array) :
o Tidak efisien dalam penggunaan
memory
o Menyiakan banyak waktu komputasi
o Pada suatu aplikasi, representasi
statis tidak dimungkinkan
DAFTAR PUSTAKA
Nanta.,
29 Januari 2012 Struktur Array.
http://nyambet.blogspot.com/
pada tanggal 14 Februari 2019 pada pukul
16.33 WITA