Array 1 Dimensi
Solusi kedua dari kasus diatas adalah dengan menggunakan
array. Array adalah suatu variabel yang dapat menampung lebih dari satu data
dengan tipe data yang sama dan dibedakan berdasarkan nomor indexnya. Dalam
bahasa C, array selalu dimulai dari index ke-0 (nol).
Contoh deklarasi array :
int N[10];
Deklarasi diatas berarti pendeklarasian variabel array
bernama N yang mempunyai elemen sebanyak 10 buah dengan index dimulai dengan
nomor 0 sampai 9. Dalam memori deklarasi tersebut dapat digambarkan seperti
berikut :
N[0]
|
N[1]
|
N[2]
|
N[3]
|
N[4]
|
N5]
|
N[6]
|
N[7]
|
N[8]
|
N[9]
|
Untuk memasukan suaut elemen data dalam array, perintah yang
dilakukan ditulis seperti pembacaan data variabel biasa hanya perbedaannya
harus ditulis untuk index ke berapa.
Contoh untuk pengisian data ke elemen array :
scanf(“%d”,
&N[2]);
Perintah diatas berarti pembacaan data dari keyboard untuk
data bertipe integer (%d) dan dimasukan ke variabel array index ke-2 (urutan
ke-3).
Contoh-contoh lain pengisian ke suatu elemen array :
I=5; //
variabel I diisi dengan nilai 5
N[I] = 7; //
data ke-I dari variabel N diisi dengan nilai 7
scanf(“%d”,&N[N[I]]);
// pembacaan
data untuk variabel N pada index ke-N[I] (7)
Karena nomor elmeen dari array bisa diisi dengan variabel,
berarti kita bisa melakukan perulangan (loop) untuk melakukan pembacaan data
dari elemen pertama sampai elemen terakhir.
Untuk lebih jelas, lihat program pada halaman berikutnya.
#include <stdio.h>
#include <conio.h>
void main()
{
int
Nilai[10];
int index;
float
total,ratarata;
// Pembacaan
data dari keyboard
printf(“Pembacaan data nilai \n”);
for
(index=0;index<10;index++)
{
printf(“Nilai mahasiswa ke-%d = “,index+1);
scanf(“%d”,&Nilai[index]);
}
//
Perhitungan total dan rata-rata
total=0;
for
(index=0;index<10;index++)
total=total+Nilai[index];// atau total+=Nilai[index];
ratarata=total/10;
//
Menampilkan data yang telah dimasukan dan rata-rata.
for
(index=0;index<10;index++)
printf(“Nilai mahasiswa ke-%d = %3d\n“,index+1,Nilai[index]);
printf(“Rata-rata = %6.2f\n”,ratarata);
getch();
}
|
Array 2 Dimensi
Array 2 dimensi biasanya digunakan untuk menyimpan
data dalam bentuk matrik. Index Array 2 dimensi terdiri dari index baris dan
kolom.
Pendeklarasian
array 2 dimensi adalah :
Tipedata namaarray[b][k];
Dimana
: b adalahbanyak baris dan k adalah banyak kolom.
Contoh
int matrik[5][5];
Perintah
di atas akan membuat sebuah array 2 dimensi yang kalau digambarkan adalah
sebagai berikut :
index
|
0
|
1
|
2
|
3
|
4
|
0
|
0,0
|
0,1
|
0,2
|
0,3
|
0,4
|
1
|
1,0
|
1,1
|
1,2
|
1,3
|
1,4
|
2
|
2,0
|
2,1
|
2,2
|
2,3
|
2,4
|
3
|
3,0
|
3,1
|
3,2
|
3,3
|
3,4
|
4
|
4,0
|
4,1
|
4,2
|
4,3
|
3,3
|
Cara
pengaksesan elemen array 2 dimensi dapat dilihat pada contoh di bawah ini :
mat[0][0]=7;
printf(“Masukan data :
“);scanf(“%d”,&mat[2][1]);
printf(“Data yang dimasukan :
%d\n”,mat[2][1]);
Keterangan
:
-
Baris pertama adalah mengisikan nilai 7 ke array
mat pada baris 0 kolom 0.
-
Baris kedua adalah perintah untuk membaca data
elemen matrik pada baris 2 kolom ke 1.
-
Baris ketiga adalah perintah untuk menampilkan
data elemen matrik/array pada baris 2 dan kolom ke-1.
Pembacaan elemen-elemen array 2 dimensi melibatkan 2
perulangan. 1 perulangan baris dan 1 perulangan kolom. Untuk lebih jelas
perhatikan program di bawah ini.
Contoh Program Array 2 Dimensi :
#include
<stdio.h>
#include
<conio.h>
#define maks 3
main()
{
int mat[maks][maks];
int b,k;
printf("Pengisian Array : \n");
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("Matrik [%d,%d] :
",b,k);
scanf("%d",&mat[b][k]);
}
}
printf("Matrik yang telah dimasukan
:\n")
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("%6d",mat[b][k]);
}
printf("\n");
}
getch();
return 0;
}
|
Contoh Program Operasi pertambahan 2
matrik.
#include
<stdio.h>
#include
<conio.h>
#define maks 3
main()
{
int mat1[maks][maks], mat2[maks][maks],
mathasil[maks][maks];
int b,k;
printf("Pengisian Matrik 1 :
\n");
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("Matrik [%d,%d] :
",b,k);
scanf("%d",&mat1[b][k]);
}
}
printf("Pengisian Matrik 2 :
\n");
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("Matrik [%d,%d] :
",b,k);
scanf("%d",&mat2[b][k]);
}
}
// awal operasi pertambahan matrik
for (b=0;b<maks;b++)
for (k=0;k<maks;k++)
mathasil[b][k]=mat1[b][k]+mat2[b][k];
// akhir operasi perhitungan
printf("Matrik 1 :\n")
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("%6d",mat1[b][k]);
}
printf("\n");
}
printf("Matrik 2 :\n")
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("%6d",mat2[b][k]);
}
printf("\n");
}
printf("Matrik Hasil :\n")
for (b=0;b<maks;b++)
{
for (k=0;k<maks;k++)
{
printf("%6d",mathasil[b][k]);
}
printf("\n");
}
getch();
return 0;
}
|
multi kontol , lebih dari 2
BalasHapus