28
MODUL 6
ARRAY
Pada program yang dibahas terdahulu, banyak menggunakan variabel tunggal, artinya
sebuah variabel hanya digunakan untuk menyimpan satu nilai.
Array merupakan koleksi data dimana setiap elemen memakai nama yang sama dan
bertipe sama, setiap elemen diakses dengan membedakan indeks array-nya.
Misal, sebuah array bernama nil yang terdiri dari 5 data dengan tipe int, dapat
digambarkan sebagai berikut:
0 1 2 3 4
nil
int
Tiap ruang kosong merupakan tempat untuk masing-masing elemen array bertipe
integer. Penomorannya berawal dari 0 sampai 4, sebab dalam array indeks pertama
selalu dimulai dengan 0
Deklarasi array
Sama seperti variabel, array harus dideklarasikan dulu sebelum mulai digunakan.
Sintaksnya adalah:
tipe nama [elemen];
Contoh, untuk pendeklarasian array dengan nama nil diatas adalah:
int nil [5];
Inisialisasi Array
Nilai suatu variabel array dapat juga diinisialisasi secara langsng pada saat deklarasi,
misalnya: int nil [5] = { 1, 3, 6, 12, 24 };
Maka di penyimpanan ke dalam arraynya akan digambarkan sebagai berikut:
29
0 1 2 3 4
nil 1 3 6 12 24
Mengakses nilai array
Untuk mengakses nilai yang terdapat dalam array, mempergunakan sintaks:
nama [indeks]
Pada contoh diatas, variabel nilai memiliki 5 buah elemen yang masing-masing berisi
data. Pengaksesan tiap-tiap elemen data adalah:
nil[0] nil[1] nil[2] nil[3] nil[4]
nil 1 3 6 12 24
Misal, untuk memberikan nilai 75 pada elemen ke 3, maka pernyataannya adalah:
nil[2] = 75;
Atau jika akan memberikan nilai array kepada sebuah variabel a, dapat ditulis:
a=nil[2];
Contoh program:
#include<iostream.h>
#include<conio.h>
int main()
{
int nil[]={16,2,77,40};
int n, hasil = 0;
for (n=0;n<4;n++)
{
hasil +=nil[n];
}
cout<<hasil;
return 0;
}
30
Array dua dimensi
Struktur array yang dibahas diatas, mempunyai satu dimensi, sehingga variabelnya
disebut dengan variabel array berdimensi satu. Pada bagian ini ditunjukkan array
berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua.
Sebagai contoh, sebuah matriks B berukuran 2x3 dapat dideklarasikan sebagai berikut:
int n[2][3]={{2,4,1},{3,5,7}}; yang akan menempati lokasi memori dengan
susunan sebagai berikut:
0 1 2
0 2 4 1
1 3 5 7
Contoh program dengan dua dimensi
#include<iostream.h>
void main()
{
int i,j;
int matriks[2][3]={{2,4,1},{5,3,7}};
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
cout<<matriks[i][j];
}
cout<<endl;
}
}
Beberapa Operasi dengan Array
Memperoleh bilangan terbesar
Mencari suatu data pada array
Mengurutkan data
31
Memperoleh Bilangan terbesar
Pada program berikut, mula-mula array diisi dengan bilangan acak.
Kemudian program menampilkan isi array dan sekaligus memperoleh
bilangan yang terbesar. Setelah menampilkan isi seluruh array, nilai terbesar
ditampilkan
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
void main()
{
clrscr();
const MAKS = 10;
int data[MAKS];
int maks;
//memperoleh data secara acak
randomize();
for(int i=0; i<MAKS; i++)
data[i]=rand();
//menampilan data dan mencari
//data terbesar
cout<<"DATA : "<<endl;
cout<<data[0]<<endl;
maks = data[0]; // isi dengan data pertama
for(i=1 ; i<MAKS ; i++)
{
cout<<data[i]<<endl;
if (data[i]>maks)
{
maks = data[i];
}
}
cout<<"Data terbesar="<<maks<<endl;
}
32
Mencari Suatu Data
Program berikut memberikan gambaran cara untuk mencari suatu data didalam
array. Mula-mula data yang akan dicari perlu dimasukkan dari keyboard.
Kemudian, data ini dibandingkan dengan elemen-elemen array. Jika ada yang
sama, program melaporkan posisi elemen array yang cocok dengan data yang
dicari.
#include<iostream.h>
#include<conio.h>
void main()
{
int i, x, ketemu;
clrscr();
int data[]={5,100,20,31,77,88,99,20,55,1};
cout<<"Data yang anda cari: ";
cin>>x;
ketemu = 0;
for (i=0; i<sizeof(data)/sizeof(int); i++)
{
if (data[i] == x)
{
ketemu=!ketemu; //ubah menjadi benar
break; //keluar dari for
}
}
if (ketemu)
cout<<"Data tersebut ada pada posisi ke-";
cout<<i+1<<endl;
else
cout<<"Data tersebut tidak ada!"<<endl;
}
33
Mengurutkan data
Ada berbagai teknik untuk mengurutkan data, salah satu diantaranya adalah
metoda bubble sort. (metoda ini terkenal karena kesederhanaannya).
Pengurutan dilakukan dengan membandingkan setiap elemen dengan seluruh
elemen yang terletak sesudah posisinya.
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int i, j, tmp, jumdata;
clrscr();
int data[]={5,100,20,31,77,88,99,20,55,1};
jumdata=sizeof(data)/sizeof(int);
//menampilkan data
cout<<"data semula:"<<endl;
for (i=0;i<jumdata;i++)
cout<<setw(4)<<data[i];
cout<<endl;
//mengurutkan data
for (i=0;i<jumdata-1;i++)
for(j=i+1;j<jumdata;j++)
if (data[i]>data[j])
{
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
//menampilkan data
cout<<"data setelah diurutkan:"<<endl;
for (i=0;i<jumdata;i++)
cout<<setw(4)<<data[i];
cout<<endl;
}