Anda di halaman 1dari 7

P12-ARRAY

Array/larik adalah kumpulan data dimana setiap elemen datanya memiliki tipe data
yang sama dan menggunakan nama/identifier yang sama. Setiap elemen data pada
array dapat diakses dengan menyebutkan nilai indeksnya.
Dimensi array terdiri dari :
1. array dimensi satu
2. array dimensi dua
3. array multidimensi

Bentuk umum dari sebuah array adalah sbb :

tipe_data nama_var[ukuran1][ukuran2]…[ukuranN];

Keterangan :
tipe_data dapat berisi salah satu tipe data yang berlaku seperti int, char, float dsb .
Ukuran1 artinya array berdimensi satu
Ukuran2 artinya array dimensi dua
UkuranN artinya array dimensi N

Ukuran tersebut menyatakan jumlah maksimal elemen array.

7.1 Array Dimensi Satu

Contoh cara mendeklarasikan array dimensi satu :

int nilai[5];

Artinya nilai adalah nama variabel array dan 5 adalah jumlah elemen array yang
dimulai dari indeks ke-0 sampai indeks ke-4. ke-5 setiap indeks array tersebut
bertipe int. Illustrasi elemen arraynya adalah sbb :
nilai[0] nilai[1] nilai[2] nilai[3] nilai[4]

Setelah dideklarasikan, maka array dapat digunakan dalam sebuah program.


Bagaimana cara mengakses elemen arraynya ? perhatikan contoh berikut ini :
nilai[0]=5; nilai[1]=10; nilai[3]=7; nilai[4]=3;
Dan seandainya jika akan ditampilkan ke layar monitor, maka caranya adalah sbb :
printf(”%d”,nilai[3]);
outputnya
7
printf(”%d”,nilai[0]);
outputnya
5

printf(”%d”,nilai[3]+[0]);
outputnya
12

Kemudian, jika meminta untuk menginput data dari keyboard ke dalam sebuah
variabel array, maka caranya adalah sbb :
scanf(”%d”,&nilai[3]);
statement tersebut mempunyai makna, data yang diinputkan melalui keyboard
akan dimasukan ke variabel array nilai indeks ke-3. Contoh dalam implementasi
program :

/* mencari jumlah dan nilai rata-rata */


#include <stdio.h> /* contoh program 12.1 /
#include <conio.h>
main()
{
int i, nilai[10], jml=0;
float rata_rata;

clrscr();
for(i=0; i<5; i++)
{
printf(“Data nilai ke-%d = “,i+1);
scanf(“%d”,&nilai[i]);
jml+=nilai[i];
}
rata_rata=(float)jml/i;
printf(“Jumlah semua bilangan = %d\n”,jml);
printf(“Rata-ratanya = %.2f\n”,rata_rata);
getch();
}
Contoh Output :
Data nilai ke-1 = 23 [enter]
Data nilai ke-2 = 12 [enter]
Data nilai ke-3 = 10 [enter]
Data nilai ke-4 = 21 [enter]
Data nilai ke-5 = 15 [enter]
Jumlah semua bilangan = 81
Nilai rata-ratanya = 16.200001
Sebuah array juga dapat diinisialisasi, berikut contoh implementasi programnya
untuk mencari jumlah hari dalam suatu bulan tertentu dan pada tahun tertentu :
/* mencari jumlah hari pada bulan & tahun tertentu */
#include <stdio.h> /* contoh program 12.2 /
#include <conio.h>
main()
{
/*inisialisasi array*/
static int jum_hari[12]={31,28,31,30,31,30,
31,31,30,31,30,31};
int bulan, tahun, jml_hari;

clrscr();
printf(“Masukan data bulan [1..12] : “);
scanf(“%d“,&bulan); fflush(stdin);
printf(“Masukan tahunnya : “);
scanf(“%d“,&tahun); fflush(stdin);

if (bulan==2)
{
if ((tahun % 4 == 0) && (tahun % 100 != 0))
jml_hari=29;
else
jml_hari=28;
}
else
jml_hari=jum_hari[bulan-1];

printf(”Jumlah Hari = %d”,jml_hari);


getch();
}
Contoh output
Masukan data bulan [1..12] : 2
Masukan tahunnya : 1997
Jumlah Hari = 28

”Bagaimana bentuk output dari program di bawah ini ?”

// mencari jumlah dan nilai rata-rata


#include <stdio.h>
#include <conio.h>
#define MAKS 5
int x[MAKS]={1,2,3,4,5};

main()
{
int i, y[MAKS];
clrscr();
for(i=0; i<MAKS; i++)
y[i]=x[MAKS-(i+1)];

for(i=0; i<MAKS; i++)


printf(“%d\n“,y[i]);
getch();
}

7.2 Array Dimensi Dua


Contoh cara mendeklarasikan array dimensi dua adalah sbb :
int MA[3][5]; // contoh sebuah matriks MA

Illustrasi elemen array dua dimensi di atas adalah sbb :

0 1 2
0 MA[0][0] MA[1][0] MA[2][0]
1 MA[0][1] MA[1][1] MA[2][1]
2 MA[0][2] MA[1][2] MA[2][2]
3 MA[0][3] MA[1][3] MA[2][3]
4 MA[0][4] MA[1][4] MA[2][4]
Keterangan :
MA[0][0] sampai MA[2][4] bertipe int.
Sebagai Contoh, MA dengan indeks ke-2 untuk ukuran1 dan indeks ke-3 untuk
ukuran2 akan diisi dengan 25, maka perintah statementnya adalah sbb :

MA[2][3]=25;

Seandainya melaui keyboard dimasukan angka 17, kemudian dibaca ke MA indeks


ke-1 untuk ukuran1 dan indkes ke-2 untuk ukuran2, maka perintah statementnya
adalah sbb :
scanf(”%d”,&MA[1][2]);

Kemudian isi data MA[1][2] ditambah dengan MA[2][3], maka perintah


statementnya adalah sbb :

printf(”%d+%d=%d”, MA[1][2],MA[2][3],MA[1][2]+MA[2][3]);
Outputnya :
17+23=40

Contoh implementasi lengkapnya, perhatikan contoh program berikut ini :


/* menjumlahkan dua buah matriks */
#include <stdio.h> /* contoh program 11.3 /
#include <conio.h>
main()
{ /* matriks ordo 3x3
int MA[3][3], MB[3][3], MH[3][3], i,j;

clrscr();
/* memasukan data matriks MA */
for(i=0;i<3;i++)
{
for(j=0; j<3; j++)
{
printf(“MA[%d][%d]=“,i+1,j+1); scanf(“%d“,&MA[i][j]);
}
}
printf(”\n”); /* pindah baris */
/* memasukan data matriks MB */
for(i=0;i<3;i++)
{
for(j=0; j<3; j++)
{
printf(“MB[%d][%d]=“,i+1,j+1); scanf(“%d“,&MB[i][j]);
}
}
printf(”\n”);

/* menjumlahkan Matriks MA dan Matriks MB */


for(i=0;i<3;i++)
{ for(j=0; j<3; j++)
MH[i][j]=MA[i][j]+MB[i][j];
}

/* menampilkan hasilnya */
for(i=0;i<3;i++)
{
for(j=0; j<3; j++)
printf(MH[i][j]:4);
printf(”\n”);
}
getch();
}

Contoh Output
MA[1][1]=1
MA[1][2]=2
MA[1][3]=3
MA[2][1]=4
MA[2][2]=5
MA[2][3]=6
MA[3][1]=7
MA[3][2]=8
MA[3][3]=9

MB[1][1]=1
MB[1][2]=2
MB[1][3]=3
MB[2][1]=4
MB[2][2]=5
MB[2][3]=6
MB[3][1]=7
MB[3][2]=8
MB[3][3]=9

2 4 6
8 10 12
14 16 18

TUGAS 6
Buatlah sebuah program untuk mencari perkalian 2 buah matriks. Perlu diketahui
bahwa perkalian 2 buah matriks syaratnya adalah Kolom matriks pertama harus
sama dengan baris matriks kedua.

7.3 Array sebagai parameter


Berikut ini akan diberikan sebuah contoh array sebagai parameter dalam kasus pengurutan 5 buah data
secara ascending dengan algoritma sbb :
1. atur i bernilai 0
2. Bandingkan x[i] dengan x[j], dengan j berjalan dari i+1 samai dengan n-1. Pada
setiap pembandingan , jika x[i] > x[j], maka isi x[i] dan x[j] ditukarkan.
3. Naikan nilai i sebesar satu
4. Bila i<(n-1), ulangi ke langkah 2

Keterangan :
i adalah indeks array
x nama array untuk menyimpan data
n adalah jumlah data

#include <stdio.h> /* contoh program 11.4 /


#define maks 20
void pemasukan_data(float x[], int *pjumlah);
void pengurutan_data(float x[], int jumlah);
void penampilan_data(float x[], int jumlah);

main()
{
float data[maks];
int jum_data;

pemasukan_data(data, &jum_data);
pengurutan_data(data, jum_data);
penampilan_data(data, jum_data);
}

void pemasukan_data(float x[], int *pjumlah)


{
int i, jum;

printf(“Jumlah data : “); scanf(“%d“,&jum);

for(i=0;i<jum;i++)
{ printf(“data ke-%d : “,i+1); scanf(“%f“,&x[i]); }
*pjumlah=jum;
} /* akhir fungsi */

void pengurutan_data(float x[], int jumlah)


{
int i,j;
float smtr;

for(i=0; i<jumlah-1; i++)


for (j=i+1; j<jumlah; j++)
if (x[i]>x[j])
{ /* proses penukaran data */
smtr=x[i];
x[i]=x[j];
x[j]=smtr;
}
} /* akhir fungsi */

void penampilan_data(float x[], int jumlah);


{
int i;

printf(“\n“);
puts(“Data setelah diurutkan : “);
for(i=0;i<jumlah;i++)
printf(“data ke-%d : %g\n“,i+1,x[i]);
}

Contoh output
Jumlah data : 5
data ke-1 : 3
data ke-2 : 2
data ke-3 : 4
data ke-4 : 1
data ke-5 : 5

Data setelah diurutkan :


data ke-1 : 1
data ke-2 : 2
data ke-3 : 3
data ke-4 : 4
data ke-5 : 5

Anda mungkin juga menyukai