-->

Bahasa Pemrograman C: Array

Wednesday, November 12, 2014

Bahasa Pemrograman C: Array

ARRAY


Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain.

VARIABEL ARRAY

nama_variabel[indeks]

ketentuan nama variabel arrray sama dengan nama variabel biasa.
indeks menunjukkan nomor dari variabel .

DEKLARASI VARIABEL ARRAY


BU : tipe nama_variabel[indeks];

Contoh : float bil[10];
deklarasi variabel array dengan nama bil yang akan menampung 10 data yang  bertipe  float.  Indeks  10  menunjukkan  variabel  bil  terdiri  dari  10 elemen, dimana setiap elemen akan menampung sebuah data.

Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi :
float bil[11]

INISIALISASI  ARRAY 1 DIMENSI

Inisialisasi  dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma.
  int bil[2] = {4,1,8}

bil[0] = 4
  bil[1] = 1
bil[2] = 8

AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya  compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array.
Cara menginisialisasikan  array dari compiler yg tidak mengikuti standar  ANSI C:
1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY.
int bil[2]={0,0,0};
main()

2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY.
main()
{
static int bil[2]={0,0,0};
.........

Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0).

Contoh :
main()
{
int y;
int hitung=0;
int x[0];
for(y=0;y<5;y++)
{
hitung+=y;
x[y]=hitung;
printf("%3d - %3d\n",y,x[y]);
}
}

OUTPUT:
0-  0
1-  1
2-  3
3-  6
4-  10

MENDEFINISIKAN JUMLAH ELEMEN ARRAY DALAM VARIABEL

Besarnya variabel indeks dapat ditentukan dengan menggunakan
preprocessor directives #define
#define N 40
main()
{
int no[N],gaji[N],gol[N],status[N],juman[N];

Bila besari indeks akan diubah menjadi 50, cukup diganti dengan
#define N 50

ARRAY 2 DIMENSI

nama_variabel [indeks1][indeks2]

indeks1 : jumlah/nomor baris
indeks2 : jumlah/nomor kolom
Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian indeks1 * indeks2

misal : array A[2][3] akan memiliki 2*3 = 6 elemen.

main()
{
float  bil [5] [5]
.......

dapat dituliskan dengan #define
#define N 5
main()
{
float bil [N]  [N]
.......

INISIALISASI ARRAY 2 DIMENSI

main()
{
float bil[2] [3] =
{ { 1,2,3}, /*baris 0*/
 { 4,5,6}, /*baris 1*/
}

elemen bil [0] [0] = 1
elemen bil [0] [1] = 2
elemen bil [0] [2] = 3
elemen bil [1] [0] = 4
elemen bil [1] [1] = 5
elemen bil [1] [2] = 6

Contoh :
main()
{
int x[3][5];
int y,z;
int hitung=0;
for(y=0;y<3;y++)


{
printf("y = %d\n",y);
for(z=0;z<5;z++)
{
hitung+=z;
x[y][z] = hitung;
printf("%/t%3d - %3d\n",z,x[y][z]);
}
}
}

OUTPUT:
y = 0
   0-  0
   1-  1
   2-  2
   3-  6
   4-  10
y = 1
   0-  10
   1-  11
   2-  13
   3-  16
   4-  20
y = 2
  0-  20
  1-  21
  2-  23
  3-  26
  4-  30

STRING dan ARRAY

1. Pada string   terdapat karakter null(\0) di akhir string
2. String sudah pasti array, array belum tentu string

CONTOH - CONTOH :

1. array dengan pengisian input melalui keyboard
baca_input()
{
float nilai[10];
for(i=0;i<10;i++)
scanf("%d",&nilai[i]);
}

2. Fungsi yang mencetak isi array dari akhir ke awal
cetak_array()
{
float nilai[10];
for(i=9;i>=0;i--)
scanf("%3f",nilai[i]);
}
3. Menghitung rata - rata isi array nilai
rata_rata()
{
float nilai[10],jum*rata;
for(i=0,jum=0;i<=9;i++)
jum+=nilai[i];
rata=jum/i;
}

4. Mencari nilai terbesar
besar()
float temp,nilai[10];
{
for(temp=nilai[0],i=1;i<=9;i++)
if(nilai[i] > temp)
temp=nilai[i];
}
return(temp)