Anda di halaman 1dari 5

MATERI VII

ARRAY
Kompetensi dasar:
Mampu menggunakan tipe array untuk pemecahan masalah.
Indikator kompetensi:
1. Memahami perlunya array
2. Mampu menentukan kapan harus menggunakan array.
3. Mampu mendeklarasikan array
4. Mampu membuat aplikasi lengkap yang mengandung array, dan menggunakan fungsi yang
menggunakan parameter array.
ARRAY
Digunakan untuk menyimpan sekelompok data yang tipenya sama.
Deklarasi Array 1 Dimensi
tipe nama_var[max_data];
Contoh:
int a[5];
float x[100];
char nama[25];
.
dst.
Cara mengakses data bertipe array
nama_variabel[alamat]
Misal : Array a
27
0

23
1

35
2

46
3

87
4

data yang tersimpan di array


alamat array (dimulai dari 0)

a[0] = 27
a[1] = 23
.
.
a[4] = 87
Menginputkan data ke array
Data dapat diinputkan untuk setiap emelen array. Tetapi jika jumlah elemen array banayk,
tentunya cara ini tidak efisien. Oleh karena itu dapat digunakan bantuan instruksi perulangan
untuk input datanya.
Contoh 1:
#include <iostream.h>
#include <conio.h>
main() {
int a[5];
cout<<"Data ke 0 = ";cin>>a[0];
cout<<"Data ke 1 = ";cin>>a[1];
cout<<"Data ke 2 = ";cin>>a[2];
cout<<"Data ke 3 = ";cin>>a[3];
cout<<"Data ke 4 = ";cin>>a[4];
int jumlah;
jumlah=a[0]+a[1]+a[2]+a[3]+a[4];
cout<<"\n\nJumlahnya = "<<jumlah;
getch();
}

Contoh 2:
#include <iostream.h>
#include <conio.h>
main() {
int a[5];
int jumlah=0;
for(int i=0;i<5;i++)
{ cout<<"Data ke "<<i<<" = ";cin>>a[i];
jumlah+=a[i];
}
cout<<"\n\nJumlahnya = "<<jumlah;
getch();
}
Tipe array juga dapat digabungkan dengan pointer. Untuk itu kita akan melakukan perubahan
pada contoh 3 menjadi sebagai berikut:
Contoh 3:
#include <iostream.h>
#include <conio.h>
main() {
int *a=new int[5];
int jumlah=0;
for(int i=0;i<5;i++)
{ cout<<"Data ke "<<i<<" = ";cin>>a[i];
jumlah+=a[i];
}
cout<<"\n\nJumlahnya = "<<jumlah;
getch();
}
Perhatikan contoh 3 diatas pada pengaksesan datanya. Jika array dideklarasikan sebagai
pointer, maka untuk pengaksesan datanya cukup dituliskan sebagai array. Tetapi kita tetap bisa
menuliskannya sebagai pointer tanpa harus menyertakan alamat arraynya. Jika demikian maka
data akan diambilkan dari data pertama, atau data pada alamat ke 0.
Sehingga misalkan pada akhir program contoh 3 diatas kita tambahkan instruksi :
cout<<"\nData = "<<*a;
atau instuksi :
cout<<"\nData = "<<a[0];
akan mempunyai arti yang sama, data akan diambil dari data pertama (alamat 0).
Selain itu untuk input data dan proses penjumlahan, dapat juga dibuat dalam bentuk fungsi
seperti pada contoh 4. Perhatikan pada saat tipe array menjadi parameter fungsi, jumlah data
yang tersimpan dalam array boleh ditulis boleh tidak (optional). Sehingga bisa ditulis dengan :
b[] saja
Contoh 4 :
#include <iostream.h>
#include <conio.h>
void input_array(int b[],int n)
{ for(int i=0;i<n;i++)
{ cout<<"Data ke "<<i<<" = ";cin>>b[i]; }
}
int jumlah(int b[],int n)
{ int hasil=0;
for(int i=0;i<n;i++)
hasil+=b[i];
return hasil;

}
main() {
int a[100];
int bd;
cout<<"Masukkan banyaknya data = ";cin>>bd;
input_array(a,bd);
cout<<"\n\nJumlahnya = "<<jumlah(a,bd);
getch();
}
Penggunaan array 1D untuk sorting data
Pada proses berikut ingin akan diurutkan n data yang tersimpan di array dengan metode
Bubble Sort.
Contoh 5:
#include <iostream.h>
#include <conio.h>
void masukan(int a[],int n)
{
for(int i=0;i<n;i++)
{ cout<<"Data ke "<<i<<" = ";
cin>>a[i];
}
}
void urutkan(int a[], int n)
{ int temp;
for(int i=0;i<n;i++)
for(int j=0;j<(n-i);j++)
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void tampil(int a[], int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
main() {
int a[100];
int jml;
cout<<"Banyak data = ";cin>>jml;
masukan(a,jml);
urutkan(a,jml);
cout<<"\n\nSetelah diurutkan ";
tampil(a,jml);
getch();
}

Pada contoh program diatas ada tiga fungsi, fungsi pertama digunakan untuk menginputkan
data ke dalam array, fungsi kedua untuk mengurutkan arraynya, dan fungsi ketiga untuk
menampilkan data yang tersimpan di array ke layar.
Array 2 Dimensi
Contoh deklarasi :
int a[4][5];
0
1
2
3
4

0
25
6
1
15
0

1
40
8
3
22
5

2
26
12
8
13
7

3
12
5
9
19
15

Mengakses data :
a[0][0] = 25
a[0][1] = 40
.
.
dst
Penggunaan array 2D untuk menjumlahkan dua matrik
Matrik asal adalah a dan b, dijumlahkan dan hasilnya disimpan di matrik c. Syarat agar matrik
dapat dijumlahkan adalah keduanya mempunyai ukuran yang sama.
Baris matrik 1 = Baris matrik 2
Kolom matrik 1 = Kolom matrik 2
Contoh 6:
#include <iostream.h>
#include <conio.h>
void masukan(int a[10][10],int b,int k)
{ for(int i=0;i<b;i++)
for(int j=0;j<k;j++)
{cout<<"Data ke "<<i<<j<<" = ";cin>>a[i][j]; }
}
void jumlah(int a1[][10],int a2[][10],int a3[][10],int b1,int k1)

for(int i=0;i<b1;i++)
for(int j=0;j<k1;j++)
a3[i][j]=a1[i][j]+a2[i][j];

}
void tampilkan(int a[10][10],int b,int k)
{ for(int i=0;i<b;i++)
{ for(int j=0;j<k;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
main() {
int dt1[10][10],dt2[10][10],dt3[10][10];
int b1,k1;
cout<<"Jumlah baris matrik = ";cin>>b1;
cout<<"Jumlah kolom matrik = ";cin>>k1;
cout<<"\nMatrik pertama\n";
masukan(dt1,b1,k1);

cout<<"\nMatrik kedua\n";
masukan(dt2,b1,k1);
jumlah(dt1,dt2,dt3,b1,k1);
clrscr();
cout<<"\nMatrik pertama\n";
tampilkan(dt1,b1,k1);
cout<<"\nMatrik kedua\n";
tampilkan(dt2,b1,k1);
cout<<"\nMatrik hasil penjumlahan\n";
tampilkan(dt3,b1,k1);
getch();
}
Perhatikan pada saat array 2D menjadi parameter fungsi, jumlah baris boleh ditulis boleh
tidak, tetapi jumlah kolom harus ditulis.
Tipe array dapat dikembangkan menjadi array multidimensi. Misal 3D, 4D, dan sebagainya.

Anda mungkin juga menyukai