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
igunakan untuk menyimpan sekelompok data yang tipenya sama.
Deklarasi Array 1 Dimensi
tipe nama!"ar#ma$!data%&
'ontoh:
int a[5];
float x[100];
char nama[25];
.
dst.
Cara mengakses data bertipe array
nama_variabel[alamat]
Misal : (rray a
2) 23 3* 4+ ,) data yang tersimpan di array
- 1 2 3 4 alamat array .dimulai dari -/
a#-% 0 2)
a#1% 0 23
.
.
a#4% 0 ,)
Menginputkan data ke array
ata dapat diinputkan untuk setiap emelen array. 1etapi 2ika 2umlah elemen array banayk,
tentunya cara ini tidak efisien. 3leh karena itu dapat digunakan bantuan instruksi perulangan
untuk input datanya.
Contoh 1:
#include <iostream.h>
#include <conio.h>
main! "
int a[5];
cout<<#$ata %e 0 & #;cin>>a[0];
cout<<#$ata %e 1 & #;cin>>a[1];
cout<<#$ata %e 2 & #;cin>>a[2];
cout<<#$ata %e ' & #;cin>>a['];
cout<<#$ata %e ( & #;cin>>a[(];
int )umlah;
)umlah&a[0]*a[1]*a[2]*a[']*a[(];
cout<<#+n+n,umlahn-a & #<<)umlah;
.etch!;
/
Contoh :
#include <iostream.h>
#include <conio.h>
main! "
int a[5];
int )umlah&0;
forint i&0;i<5;i**!
" cout<<#$ata %e #<<i<<# & #;cin>>a[i];
)umlah*&a[i];
/
cout<<#+n+n,umlahn-a & #<<)umlah;
.etch!;
/
1ipe array 2uga dapat digabungkan dengan pointer. 4ntuk itu kita akan melakukan perubahan
pada contoh 3 men2adi sebagai berikut:
Contoh !:
#include <iostream.h>
#include <conio.h>
main! "
int 0a&ne1 int[5];
int )umlah&0;
forint i&0;i<5;i**!
" cout<<#$ata %e #<<i<<# & #;cin>>a[i];
)umlah*&a[i];
/
cout<<#+n+n,umlahn-a & #<<)umlah;
.etch!;
/
5erhatikan contoh 3 diatas pada pengaksesan datanya. 6ika array dideklarasikan sebagai
pointer, maka untuk pengaksesan datanya cukup dituliskan sebagai array. 1etapi kita tetap bisa
menuliskannya sebagai pointer tanpa harus menyertakan alamat arraynya. 6ika demikian maka
data akan diambilkan dari data pertama, atau data pada alamat ke -.
7ehingga misalkan pada akhir program contoh 3 diatas kita tambahkan instruksi :
cout<<#+n$ata & #<<0a;
atau instuksi :
cout<<#+n$ata & #<<a[0];
akan mempunyai arti yang sama, data akan diambil dari data pertama .alamat -/.
7elain itu untuk input data dan proses pen2umlahan, dapat 2uga dibuat dalam bentuk fungsi
seperti pada contoh 4. 5erhatikan pada saat tipe array men2adi parameter fungsi, 2umlah data
yang tersimpan dalam array boleh ditulis boleh tidak .optional/. 7ehingga bisa ditulis dengan :
b#% sa2a
Contoh " :
#include <iostream.h>
#include <conio.h>
void in2ut_arra-int b[]3int n!
" forint i&0;i<n;i**!
" cout<<#$ata %e #<<i<<# & #;cin>>b[i]; /
/
int )umlahint b[]3int n!
" int hasil&0;
forint i&0;i<n;i**!
hasil*&b[i];
return hasil;
/
main! "
int a[100];
int bd;
cout<<#4asu%%an ban-a%n-a data & #;cin>>bd;
in2ut_arra-a3bd!;
cout<<#+n+n,umlahn-a & #<<)umlaha3bd!;
.etch!;
/
#enggunaan array 1D untuk sorting data
5ada proses berikut ingin akan diurutkan n data yang tersimpan di array dengan metode
8ubble 7ort.
Contoh $:
#include <iostream.h>
#include <conio.h>
void masu%anint a[]3int n!
"
forint i&0;i<n;i**!
" cout<<#$ata %e #<<i<<# & #;
cin>>a[i];
/
/
void urut%anint a[]3 int n!
" int tem2;
forint i&0;i<n;i**!
forint )&0;)<n5i!;)**!
if a[)]>a[)*1]!
"
tem2&a[)];
a[)]&a[)*1];
a[)*1]&tem2;
/
/
void tam2ilint a[]3 int n!
"
forint i&0;i<n;i**!
cout<<a[i]<<# #;
/
main! "
int a[100];
int )ml;
cout<<#6an-a% data & #;cin>>)ml;
masu%ana3)ml!;
urut%ana3)ml!;
cout<<#+n+n7etelah diurut%an #;
tam2ila3)ml!;
.etch!;
/
5ada 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 Dimensi
'ontoh deklarasi :
int a#4%#*%&
- 1 2 3
- 2* 4- 2+ 12
1 + , 12 *
2 1 3 , 9
3 1* 22 13 19
4 - * ) 1*
Mengakses data :
a#-%#-% 0 2*
a#-%#1% 0 4-
.
.
dst
#enggunaan array D untuk men%umlahkan dua matrik
Matrik asal adalah a dan b, di2umlahkan dan hasilnya disimpan di matrik c. 7yarat agar matrik
dapat di2umlahkan adalah keduanya mempunyai ukuran yang sama.
8aris matrik 1 0 8aris matrik 2
Kolom matrik 1 0 Kolom matrik 2
Contoh &:
#include <iostream.h>
#include <conio.h>
void masu%anint a[10][10]3int b3int %!
" forint i&0;i<b;i**!
forint )&0;)<%;)**!
"cout<<#$ata %e #<<i<<)<<# & #;cin>>a[i][)]; /
/
void )umlahint a1[][10]3int a2[][10]3int a'[][10]3int b13int %1!
" forint i&0;i<b1;i**!
forint )&0;)<%1;)**!
a'[i][)]&a1[i][)]*a2[i][)];
/
void tam2il%anint a[10][10]3int b3int %!
" forint i&0;i<b;i**!
" forint )&0;)<%;)**!
cout<<a[i][)]<<# #;
cout<<#+n#;
/
/
main! "
int dt1[10][10]3dt2[10][10]3dt'[10][10];
int b13%1;
cout<<#,umlah baris matri% & #;cin>>b1;
cout<<#,umlah %olom matri% & #;cin>>%1;
cout<<#+n4atri% 2ertama+n#;
masu%andt13b13%1!;
cout<<#+n4atri% %edua+n#;
masu%andt23b13%1!;
)umlahdt13dt23dt'3b13%1!;
clrscr!;
cout<<#+n4atri% 2ertama+n#;
tam2il%andt13b13%1!;
cout<<#+n4atri% %edua+n#;
tam2il%andt23b13%1!;
cout<<#+n4atri% hasil 2en)umlahan+n#;
tam2il%andt'3b13%1!;
.etch!;
/
5erhatikan pada saat array 2 men2adi parameter fungsi, 2umlah baris boleh ditulis boleh
tidak, tetapi 2umlah kolom harus ditulis.
1ipe array dapat dikembangkan men2adi array multidimensi. Misal 3, 4, dan sebagainya.

Anda mungkin juga menyukai