200
Sa m
ya hit
ha sa
va
9.
se lan
Sp ele
da ba
ba
08 | Direktorat P
atu-satunya enentukan
ang berpen tungan. Ka
anya meng aja. Gamba
ariabel array
Gambar 9.1
4.2. Array
Ada bebe eperti jumlah
ntai di se pesifikasi ya
emen bangu an setiap ele
ahwa untuk angunan da
Pembinaan SMK
persyara elemen a
ndapat ba rena itu, s
ggunakan s ar berikut
satu-dimen
1. Array Satu
Dua Dime
erapa array d h kantor-kan
etiap gedun ang memerl
unan dan ju emen yang b
menghitung an lantai.
G
K
atan untuk adalah usia
hwa unsu eperti array
satu indeks menyatakan
si.
u Dimensi
nsi
dua dimensi ntor di setiap
ng kampus lukan kedua
umlah lantai berpendapa
g kombinas Karena itu
Gambar 9.3. k
a r
y s
n
, p
. a
, t
si ,
seperti indeks.
variabel
Gam
9.4.3. T
Beb dimensi
dimensi menggu
dalam koordina
berikut mengad
. Array 3 Dim array me
Gambar be l array dua d
bar 9.2. Arra
Tiga Dimen
berapa arra i, seperti
i ruang. unakan tig
hal ini mew at dari rua
menyataka dakan array
mensi
enggunakan erikut meny
dimensi
ay Dua Dime
nsi
ay memilik nilai dalam
Seperti a indeks,
wakili x, y, ang fisik. g
an variabel tiga dimens
343 n dua
atakan
ensi ki tiga
m tiga array
yang z dan
gambar untuk
i.
344
Direktorat Pembinaan SMK | 2008
Untuk lebih jelasnya mengenai array multi dimensi dibawah ini
diberikan beberapa contoh array. Arrai dibawah ini merupakan matrik 2
X 2 yang menggunakan array. int
matrik[2][2]; Berikut adalah contoh program
lengkapnya:
Program 9.4. include
iostream
using namespace std;
int mainvoid {
int
t, i, matrik[ 3
][ 4
];
fort= ;
t 3
; t++
fori= ;
i 4
; i++
matrik[t][i] = t
4 +i+
1 ;
fort=
; t
3 ;
t++ {
fori= ;
i 4
; i++
cout matrik[t][i]
; cout
endl; }
return ;
} Keluaran dari program di atas adalah :
1 2 3 4
5 6 7 8
9 10 11 12
t t
0 1 2 3 1
2 3
4 1 5 6 7 8
2 9
10 11
12 Baris ke-5 sampai ke-7 adalah
pemasukan data pada matrik. Sedangkan baris ke-8 sampai ke-12
adalah menampilkan data matrik. Pada kedua proses tersebut,
pemasukan data dan menampilkan data terdapat dua buah perulangan
dimana perulangan pertama adalah untuk mengidentifikasi baris dari
matrik dan perulangan kedua untuk mengidentifikasi kolom dari matrik.
Berikut ini adalah contoh untuk penjumlahan dua buah matrik.
2008 | Direktorat Pembinaan SMK
345 Program 9.5.
include iostream
using namespace std;
int mainvoid {
int
t, i, A[ 3
][ 4
],B[ 3
][ 4
],C[ 3
][ 4
];
fort=
; t
3 ;
t++
fori= ;
i 4
; i++
A[t][i] = t
4 +i+
1 ;
cout MATRIK
A endl;
fort= ;
t 3
; t++ {
fori= ;
i 4
; i++
cout A[t][i]
; cout
endl; }
fort=
; t
3 ;
t++
fori= ;
i 4
; i++
B[t][i] = t
4 +i+
1 ;
cout endl;
cout MATRIK
B endl;
fort=
; t
3 ;
t++ {
fori= ;
i 4
; i++
cout B[t][i]
; cout
endl; }
fort= ;
t 3
; t++
fori= ;
i 4
; i++
C[t][i] = A[t][i]+B[t][i];
cout endl;
cout MATRIK
C = A + B endl;
fort= ;
t 3
; t++ {
fori= ;
i 4
; i++
cout C[t][i]
; cout
endl; }
return ;
} Keluaran program :
MATRIK A
346
Direktorat Pembinaan SMK | 2008
1 2 3 4
5 6 7 8
9 10 11 12 13
MATRIK B
1 2 3 4
5 6 7 8
9 10 11 12
MATRIK C = A +B
2 4 6 8
10 12 1416
18 20 22 24
9.5. Mengurutkan Elemen Array
Ada banyak sekali metode untuk mengurutkan data, antara lain
Exchange Sort, Selection Sort, Insertion Sort, Bubble Sort, Quick
Sort, Shell Sort, Binary Insertion Sort, dan masih banyak lagi.
Dari sekian banyak metode, hanya metode Exchange Sort,
Bubble Sort, dan Insertion Sort saja yang akan kita bahas karena ketiga
metode ini merupakan metode yang paling mudah dan banyak digunakan.
Untuk metode Selection Sort langkah-langkahnya adalah sebagai
berikut : 1. Proses 1: variabel indek diberi
nilai 1 data ke-1 kemudian data indek dibandingkan dengan data
ke-2. Jika data indek lebih besar maka nilai indeknya diganti
dengan 2 data ke-2, jika tidak nilai indeknya tetap.
Kemudian data indek dibandingkan lagi dengan data
ke-3, lebih besar? Nilai indek ditukar Demikian seterusnya.
Setelah selesai, nilai indek diperiksa apakah nilai indek
berubah atau tidak. Jika nilai indek mengalami perubahan
maka data ke-1 ditukar dengan data indek.
2. Pada proses 2: variabel indek diberi nilai 2 data ke-2 kemudian
data indek dibandingkan dengan data ke-3. Jika data indek lebih
besar maka nilai indeknya diganti dengan 3 data ke-3.
Kemudian data indek dibandingkan lagi dengan data
ke-4, lebih besar? Nilai indek ditukar Demikian seterusnya.
Setelah selesai, nilai indek diperiksa apakah nilai indek
berubah atau tidak. Jika nilai indek mengalami perubahan
maka data ke-2 ditukar dengan data indek.
3. Demikian untuk proses
selanjutnya dimana banyak prosesnya adalah jumlah elemen
array dikurangi satu.
Berikut program lengkap metode Selection Sort dalam bahasa C++
adalah:
2008 | Direktorat Pembinaan SMK
347 Program 9.6
include iostream
using namespace std;
int
a[ 10
];
void inputint data,int i {
a[i] = data;
}
void
tampil {
forint
i= ;
i 10
; i++
cout a[i]
; cout
endl; }
void tukarint data1, int data2 {
long
temp = a[data1]; a[data1] = a[data2]; a[data2]
= temp; }
void
selectionSort {
int
i,j,indek;
fori= ;
i 5
‐ 1
; i++ {
indek=i;
forj=i+ 1
; j
5 ;
j++
ifa[indek]
a[j] indek=j;
tukari,indek; }
}
void
main { input
57 ,
; input
89 ,
1 ;
input 49
, 2
; input
51 ,
3 ;
input 12
, 4
; input
90 ,
5 ;
input 1
, 6
; input
, 7
; input
63 ,
8 ;
input 25
, 9
; tampil;
selectionSort;
348
Direktorat Pembinaan SMK | 2008
tampil; }
Keluaran program diatas adalah sebagai berikut : 57
89 49 51 12 90 1 0 63 25 12
49 51 57 89 90 1 0 63 25 Metode Bubble Sort mempunyai
langkah-langkah sebagai berikut : 1.
Membandingkan data ke-1 dengan data ke-2, jika data ke-1
lebih besar, maka kedua data ditukar.
2. Kemudian membandingkan data ke-2 dengan data ke-3, jika data
ke-2 lebih besar, kedua data ditukar lagi.
3. Demikian seterusnya sampai data terakhir, sehingga data
kedudukannya akan bergeser- geser.
4. Untuk proses 2, pembandingan pergeseran data hanya sampai
pada data terakhir dikurangi satu. Kode program lengkapnya dalam
bahasa C++ adalah sebagai berikut : Program 9.7
include iostream
using namespace std;
int
a[ 10
];
void inputint data,int i {
a[i] = data;
}
void
tampil {
forint
i= ;
i 10
; i++
cout a[i]
; cout
endl; }
void tukarint data1, int data2 {
long
temp = a[data1]; a[data1]
= a[data2]; a[data2]
= temp; }
void
bubSort {
int
i, j;
fori= 10
‐ 1
; i
1 ;
i‐‐
forj= ;
ji; j++
if
a[j] a[j+ 1
] tukarj, j+
1 ;
}
2008 | Direktorat Pembinaan SMK
349
void
main { input
57 ,
; input
89 ,
1 ;
input 49
, 2
; input
51 ,
3 ;
input 12
, 4
; input
90 ,
5 ;
input 1
, 6
; input
, 7
; input
63 ,
8 ;
input 25
, 9
; tampil;
bubSort; tampil;
} Keluaran program diatas adalah sebagai berikut:
57 89 49 51 12 90 1 0 63 25
1 12 25 49 51 57 63 89 90 Metode Insertion Sort mirip
dengan cara orang mengurutkan kartu selembar demi selembar, kartu
diambil dan disisipkan insert ke tempat yang seharusnya. Adapun
langkah-langkahnya adalah sebagai berikut :
Pengurutan dimulai dari data ke-2 sampai dengan data terakhir.
Jika ditemukan data yang lebih kecil atau lebih besar, maka akan
ditempatkan diinsert diposisi yang seharusnya
Program selengkapnya dalam bahasa C++ adalah :
Program 9.8. include
iostream
using namespace std;
int
a[ 10
];
void inputint data,int i {
a[i] = data;
}
void
tampil {
forint
i= ;
i 10
; i++
cout a[i]
; cout
endl; }
void
insertionSort {
350
Direktorat Pembinaan SMK | 2008
int
i,j;
fori=
1 ;
i 10
; i++ {
long
temp = a[i]; j=i;
whilej
a[j‐ 1
] = temp {
a[j] = a[j‐
1 ];
‐‐j; }
a[j] = temp;
} }
void
main { input
57 ,
; input
89 ,
1 ;
input 49
, 2
; input
51 ,
3 ;
input 12
, 4
; input
90 ,
5 ;
input 1
, 6
; input
, 7
; input
63 ,
8 ;
input 25
, 9
; tampil;
insertionSort; tampil;
} Keluaran programnya adalah sebagai berikut:
57 89 49 51 12 90 1 0 63 25
1 12 25 49 51 57 63 89 90
9.6. Contoh Program Array
Dibawah ini merupakan beberapa contoh program yang
bekerja menggunakan array. Array merupakan variabel yang mampu
menyimpan sejumlah nilai yang bertipe sama. Pada contoh dibawah
ini menggunakan array yang bekerja satu dimensi maupun multidimensi
dimensi dua atau tiga. Untuk lebih jelasnya perhatikan beberapa contoh
dibawah ini:
Program 9.9. Program di bawah ini untuk membaca data kemudian menampilkannya.
includeiostream.h includeconio.h
2008 | Direktorat Pembinaan SMK
351 using
namespace std; void
main {
int
data[ 10
]; array dengan 10 elemen bertipe integer
int
elemen; entri 10 data
for
elemen= ;elemen
= 9
;elemen++ {
cout Data
ke ‐ elemen
: ;
cin data[elemen];
} tampilkan data setelah entri
for
elemen= ;elemen
= 9
;elemen++ {
cout Data
ke ‐ elemen
: data[elemen];
} }
Catatan: Dalam CC++ elemen array dimulai dari 0. Program 9.10.
Program untuk menampilkan data array dari hasil inisialisasi:
includeiostream.h includeconio.h
using namespace std;
void
main {
int
data[ 5
] = {
4 ,
1 ,
, ‐
9 ,
8 };
int
elemen; tampilkan data
for
elemen= ;elemen
= 4
;elemen++ {
cout Data
ke ‐ elemen
: data[elemen];
} }
Program 9.11.