ARRAY
3.1 Pengertian Array
Array merupakan kumpulan dari nilai-nilai data yang
bertipe sama dalam urutan tertentu yang menggunakan nama yang
sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat
dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi
dua dan array multi-dimensi. Setiap elemen array dapat diakses melalui indeks.
Dalam bahasa C indeks dimulai dari 0 (nol).
Itu berarti dengan menggunakan array jika kita ingin menyimpan lima nilai
bertpe data int kita tidak perlu mendeklarasikan lima variabel yang
berbeda dengan tipe data int, kita cukup mendeklarasikan satu variabel
array engan tipe data int.
Sebagai contoh, sebuah array yang dapat menampung lima bilangan bulat yang
diberi nama Nilai maka dapat digambarkan sebagai berikut:
3.2 Deklarasi Array
Seperti halnya penggunaan variabel, array pun sebelum digunakan harus
dideklarasikan terlebih dahulu. Pada bahasa C pendeklarasian array adalah
sebagai berikut:
ü Bentuk umum :
Tipe_array nama_array[ukuran];
- tipe_array :
adalah tipe data yang dapat ditampung oleh array.
- nama_array : nama variabel array
yang dideklarasikan.
- [ukuran]
: banyaknya nilai yang dapat ditampung oleh array
(banyaknya elemen array).
Contoh:
int x[5];
float diameter[10];
char kata[20];
ü Inisialisai (pemberian nilai awal) sebuah array:
Pemberian nilai awal dari sebuah array dapat dilakukan bersamaan pada saat
deklarasi ataupun setelah sebuah array dideklarasikan. Untuk inisialisasi
bersamaan dengan pendeklarasian array dapat dilihat pada contoh di bawah ini:
int x[ ] = {10, 34, 22, 56, 23};
Dari contoh di atas dapat diberi penjelasan sebagai berikut:
- Dideklarasikan sebuah array yang diberi nama x
yang mempunyai nilai-nilai elemen 10, 34, 22, 56 dan 23.
- Variabel x dideklarasikan dengan tidak
menuliskan jumlah elemen yang dapat ditampung, hal ini diperkenankan dan
biasanya array semacam ini disebut array yang tidak berukuran.
- Untuk array yang tidak berukuran kompiler C akan secara
otomatis menentukan ukuran tergantung dari jumlah nilai-nilai elemn yang
diberikan saat deklarasi.
- Untuk contoh di atas, maka dapat dikatakan variabel x
mempunyai lima elemen.
Catatan:
- Array tidak dapat dideklarasikan tanpa ukuran dan tanpa
pemberian nilai awal, seperti berikut: int x[ ]; kompiler akan
memberikan pesan kesalahan bahwa array tidak memiliki ukuran.
- Permasalahan sering muncul jika pembuat program belum
dapat menentukan berapa jumlah elemen array yang akan digunakan dalam
programnya. Hal ini dapat diatasi dengan menentukan jumlah maksimal elemen yang
ditampung terlebih dahulu saat pendeklarasian dengan melihat batasan
memori yang digunakan. Misalnya jumlah elemen array terlebih dahulu ditentukan
100, kemudian dalam program ada masukan yang menanyakan jumlah elemen array
sesungguhnya yang dibutuhkan, misalnya pengguna program hanya menggunakan 10
elemen saja, maka sisa elemen yang telah ditentukan sebelumnya tidak akan
digunakan meskipun sudah dipesan penempatannya dalam memori. Contoh program
dapat dilihat pada listing program 3.1.
ü Pengaksesan nilai dari sebuah array:
Elemen array dapat diakses dalam program. Pengaksesan yang dimaksud dapat
berupa pemberian nilai maupun mengambil nilai yang disimpan dalam sebuah array.
Bentuk umum pengaksesan array adalah sebagai berikut:
nama_array[indeks]
Contoh:
int lili[4];
lili[0]=10;
lili[1]= lili[0]/2;
lili[2]= lili[1] * lili[0];
lili[3]=2;
Listing Program 3.1 Contoh Array dengan ukuran
/* Program untuk menginput nilai mahasiswa ke dalam array satu dimensi */
#include <stdio.h>
#include <conio.h>
void main()
{
int index, nilai[10];
clrscr();
Lanjutan (Listing Program 3.1 Contoh Array dengan ukuran)
printf(“Input nilai 10 mahasiswa\n”); /* input nilai
mahasiswa */
for(index=0; index < 10; index++)
{ printf(“Mahasiswa %i : “, index+1);
scanf(“%i”, &nilai[index]);
}
/* tampilkan nilai mahasiswa */
printf(“\nNilai mahasiswa yang telah diinput\n”);
for(index=0; index < 10; index++)
{ printf(“%5.0i”, nilai[index]);
}
getch();
}
Hasil Running Program:
Input nilai 10 mahasiswa
Mahasiswa 1 : 73
Mahasiswa 2 : 43
Mahasiswa 3 : 56
Mahasiswa 4 : 93
Mahasiswa 5 : 38
Mahasiswa 6 : 45
Mahasiswa 7 : 78
Mahasiswa 8 : 84
Mahasiswa 9 : 76
Mahasiswa 10 : 58
Nilai mahasiswa yang telah diinput
73 43 56 93 38
45 78 84 76 58
Listing Program 3.2 Jumlah Elemen Array Ditentukan Pengguna
/* Program untuk menginput nilai mahasiswa ke dalam array, jumlah
mahasiswa
ditentukan oleh pengguna*/
#include <stdio.h>
#include <conio.h>
#define max 100
void main()
{
int n, index, nilai[max];
clrscr();
printf(“Input banyaknya mahasiswa: “);
/*Input jumlah elemen array sesungguhnya */
scanf(“%i”, &n);
printf(“\n”); /* input nilai mahasiswa */
for(index=0; index < n; index++)
{ printf(“Mahasiswa %i : “, index+1);
scanf(“%i”, &nilai[index]);
}
Lanjutan (Listing Program 3.2 Jumlah Elemen Array Ditentukan
Pengguna)
/* tampilkan nilai mahasiswa */
printf(“\nNilai mahasiswa yang telah diinput\n”);
for(index=0; index < n; index++)
{ printf(“%5.0i”, nilai[index]);
}
getch();
}
Hasil Running Program:
Input banyaknya mahasiswa: 5
Mahasiswa 1 : 73
Mahasiswa 2 : 43
Mahasiswa 3 : 56
Mahasiswa 4 : 93
Mahasiswa 5 : 38
Nilai mahasiswa yang telah diinput
73 43 56 93 38
3.3 Array Multi Dimensi
Array multi dimensi dapat digambarkan sebagai “array di dalam array”. Bahasa
C tidak membatasi jumlah dimensi array, yang membatasi hanyalah jumlah memori
yang tersedia. Array multi dimensi yang banyak dipergunakan dalam pemrograman
adalah array dua dimensi.
Array dua dimensi dapat diumpamakan sebagai sebuah tabel ataupun matrik yang
memiliki baris dan kolom. Sebagai contoh dapat dilihat gambar di bawah ini:
Variabel jimmy merupakan array dua dimensi yang mempunyai elemen 3 baris,
dimana masing-masing baris memiliki 5 kolom. Total elemen array adalah 15
elemen. Dalam bahasa C jimmy dapat dideklarsikan sebagai berikut:
int jimmy [3][5];
atau jika ingin mendeklarasikan dengan memberikan nilai awal untuk
masing-masing elemen dapat dilakukan sebagai berikut:
int jimmy [3][5]= {7, 5, 6, 8, 3, 2, 3, 5, 6, 3, 1, 0, 4, 7, 5};
Supaya memperjelas pemberian nilai awal, penulisan deklarasi dapat juga
dituliskan sebagai berikut:
int jimmy [3][5]= {
7, 5, 6, 8, 3,
2, 3, 5, 6, 3,
1, 0, 4, 7, 5
};
Array dua dimensi jimmy ini dapat pula dideklarasikan secara tidak berukuran
sebagai berikut:
int jimmy [ ][5]= {7, 5, 6, 8, 3, 2, 3, 5, 6, 3, 1, 0, 4, 7, 5};
Catatan:
Dalam pendeklarasian array dua dimensi yang dapat tidak disebutkan jumlah
elemennya adalah untuk dimensi yang pertama, sedang dimensi yang kedua harus
ditentukan jumlah elemennya. Dengan mengetahui jumlah elemen dari dimensi kedua
maka dapat menentukan jumlah elemen untuk masing-masing dimensi kedua. Berdasarkan
contoh di atas maka dapat ditentukan 5 nilai pertama adalah untuk baris
pertama, kemudian 5 nilai berikutnya adalah untuk baris kedua dan 5 nilai
terakhir adalah untuk baris terakhir.
Contoh penggunaan array dua dimensi adalah program untuk menginput matrik
dan menampilkan matrik tersebut. Program matrik disajikan dalam listing program
3.3.
Listing Program 3.3 Program Input Matriks
/* Program menginput nilai(bilangan) ke dalam array
dimensi dua dan menampilkannya */
#include <stdio.h>
#include <conio.h>
void main()
{ int baris, kolom, matriks[2][3];
for(baris=0; baris<2; baris++) // Input
elemen array
{ for(kolom=0; kolom<3; kolom++)
{ printf(“matriks[%i][%i]: “, baris+1, kolom+1);
scanf(“%i”, &matriks[baris][kolom]);
}
printf(“\n”);
}
Lanjutan (Listing Program 3.3 Program Input Matriks)
// Tampilkan elemen Array
printf(“Isi array : \n”);
for(baris=0; baris<2; baris++)
{ for(kolom=0; kolom<3; kolom++)
{ printf(“%5.0i”, matriks[baris][kolom]);
}
printf(“\n”);
}
getch();
}
Hasil Running Program:
matriks[1][1]:12
matriks[1][2]:13
matriks[1][3]:21
matriks[2][1]:11
matriks[2][2]:7
matriks[2][3]:9
Isi array :
12 13 21
11 7 9
3.4 Array sebagai Parameter
Jika array dijadikan sebagai parameter dari suatu fungsi, maka untuk
mengirimkan array tersebut harus menggunakan alamat array, yaitu pengiriman
parameter secara alamat.
Sebagai contoh pada listing program 3.4, program meminta pengguna program
memasukkan sejumlah bilangan bulat, kemudian bilangan bulat tersebut akan
dikalikan dengan dua dan ditampilkan.
Pada program 3.4 mempunyai modul inputArray(arg[ ], pjng)
yang bertipe void, modul inputArray bertujuan untuk meminta pengguna memasukkan
nilai dari elemen-elemen array, banyaknya elemen array tergantung dari nilai
yang diterima oleh parameter pjng. Nilai-nilai tersebut akan
diberi kepada array arg. arg[ ], pjng
dijadikan sebagai parameter aktual.
Modul kaliArray(arg[ ], pjng) bertujuan untuk mengalikan
nilai elemen-elemen arg dengan dua. Untuk mengisikan
nilai elemen-elemen array arg digunakan perulangan sebanyak
jumlah elemen yang nilai banyaknya elemen didapat dari parameter pjng.
Modul cetakArray(arg[ ], pjng) bertujuan untuk mencetak
nilai elemen-elemen arg. Untuk menampilkan nilai elemen-elemen
array arg digunakan perulangan sebanyak jumlah elemen yang
nilai banyaknya elemen didapat dari parameter pjng.
Dalam modul main(), dideklarasikan array arr
yang mampu menampung maksimal 100 nilai, dan variabel bnyk
yang bertipe integer. Pertama program meminta masukan dari pengguna berupa jumlah
elemen array, nilai tersebut diberikan kepada variabel bnyk.
Kemudian program memanggil fungsi inputArray, variabel yang
dijadikan parameter aktual adalah arr dan bnyk.
Pada pemanggilan fungsi dalam fungsi main() dengan mengirimkan
array sebagai parameter ukuran dari array yang ditandai dengan tanda “[ ]”
tidak perlu dituliskan cukup nama array-nya saja, seperti pemanggilan berikut: inputArray(arr,
bnyk).
Listing Program 3.4 Program Array Sebagai Parameter
#include <stdio.h>
#include <conio.h>
void inputArray(int arg[], int pjng) /* fungsi Input
elemen array */
{ for(int i=0; i< pjng; i++){
printf(“Masukkan arr[%d]: “,i+1);
scanf(“%d”, &arg[i]);
}
}
void kaliArray (int arg[], int pjng) /* fungsi kalikan elemen
array dengan 2 */
{ for (int n=0; n<pjng; n++)
arg[n] *=2;
}
void cetakArray (int arg[], int pjng) /* fungsi cetak elemen array */
{ for (int n=0; n<pjng; n++)
printf(“%4.0d”,arg[n],” “);
printf(“\n”);
}
int main ()
{
int bnyk, arr[100];
printf(“Program Array sebagai Argumen dalam Fungsi\n”);
printf(“Masukkan jumlah elemen : “);
scanf(“%d”, &bnyk);
inputArray(arr, bnyk); /* Pengiriman array ke
parameter dalam fungsi */
kaliArray(arr, bnyk);
cetakArray(arr, bnyk);
return 0;
}
Hasil Running Program:
Program Array sebagai Argumen dalam Fungsi
Masukkan jumlah elemen : 5
Masukkan arr[1] : 12
Masukkan arr[2] : 23
Masukkan arr[3] : 5
Masukkan arr[4] : 33
Masukkan arr[5] : 65
24 46 10 33 65