Rangkuman sebelum UTS


Bab 16
Array Dua Dimensi
16.1   Pengertian array dua dimensi
Array dua dimensi dapat dipandang sebagai gabungan array satu dimensi.
Pandanglah tiga buah array satu dimensi yang dibuat dengan int A1[5], int A2[5], int A3[5].
0     1      2     3      4
A1

A2

A3





Nama elemen : A1[0] sampai dengan A1[4]





Nama elemen : A2[0] sampai dengan A2[4]





Nama elemen : A3 [0] sampai dengan A3[4]

Ketiga buah array satu dimensi diatas, dapat digabung menjadi satu, sehingga terbentuk sebuah array yang disebut array dua dimensi yang biasanya diilustrasikan sebagai berikut :
Ada 5 kolom (column)
( 0-4 )
A [0][0]














A
0     1      2     3      4
0
1
2
Array dua dimensi ini, misalnya mengilustrasikan sebuah bangunan yang terdiri dari 3 lantai, dan masing-masing lantai terdiri dari 5 ruangan.
A[1][2]
Ada 3
baris (row)
(0-2)
Disebut dua dimensi, karena untuk menunjuk sebuah ruangan , diperlukan dua penunjuk yaitu nomor lantai dan nomor ruangan.

A[2][4]

Dari ilustrasi diatas, terlih at array tersebut teerdiri dari 3 baris, dan 5 kolom, dan jumlah elemennya = 3 x 5 = 15 elemen. Karena terdiri dari baris (Row) dan Kolom (Column), maka array dua dimensi sering juga disebut MATRIX.
Karena sudah menjadi satu buah array, maka namanya juga hanya satu buah, misalnya A[3][5] yang maksudnya barisnya ada 3, dan kolomnya ada 5.

Nama sebuah elemen misalnya : A [1][2]
Nomor baris,
Disebut lebih dulu
Baru nomor kolom
Nama sebuah elemen
yang tercetak pada
baris : 1, kolom : 2
Nomor kolom
Nomor baris

16.2   Menyiapkan Array Dua Dimensi dalam Bahasa C/C++ dan Java

Contoh :
Public class Contoh
{  public static void main (String[] args)
     {  int[][] A = new int[3][5];
#include<stdio.h>
Void main()
{ int A[3][5];
C/C++                                          Java

Instruksi       : int A[3][5]; pada C/C++ atau
                        Int [][] A = new int [3][5]; pada Java

Akan menyiapkan array dua dimensi bertipe integer, terdiri dari 3 baris ( dengan nomor : 0, 1, 2 ), dan 5 kolom ( dengan nomor : 0, 1, 2, 3, 4 ) dengan ilustrasi sebagai berikut:













A[1][2]
A[2][4]
A [0][0]
0      1      2     3     4
A
0
1
2
Ada 5
kolom (column)
( 0-4 )

Sama dengan array satu dimensi, isi atau nilai awal tiap elemen array bukan (belum tentu) = nol (0) atau space.


Ada 3
baris (row)

16.3   Alamat elemen-elemen array Dua Dimensi, pada C/C++.
21C4
21C6
21C8
21CA
21CC
21CE
21D0
21D2
21D4
21D6
21D8
21DA
21DC
21DE
21E0

Tercetak :
#include<stdio.h>
Void main()
{ int A[3][5];
int I, J;
for (I=0, I<=2; I++)
   for (J=0, I<=4; J++)
        printf(“\n%X”, &A[I][J]);

Baris nomor : 0
Contoh :
Baris nomor : 1


Baris nomor : 3




a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
0

1

2
0        1        2        3        4
A
Dari alamat yang tercetak, terlihat bahwa array yang kita ilustrasikan dengan gambar sebagai berikut,

Didalam memory ternyata tersusun ‘berderet kesamping’ yang dapat diilustrasikan dengan gambar sebagai berikut :

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o


Cara komputer mengalokasikan elemen array dua dimensi ‘berderet kesamping’ dikatakan bahwa komputer menggunakan sistem Row Major Order (Urutan yang mengutamakan baris)
Catatan : Isi array a, b ,c dan seterusnya hanya untuk memudahkan membedakan antara elemen satu dengan yang lainnya, bukan berarti elemen tersebut berisi : ‘a’, ‘b’ dan sebagainya

Bila sistem yang digunakan oleh komputer untuk menyimpan elemen-elemen array dua dimensi menggunakan sistem Column Major Order ( Urutan yang mengutamakan kolom), maka urutan penyimpanannya dalam memory dapat di ilustrasikan dengan gambar brikut :
a
f
k
b
g
l
c
h
m
d
i
n
e
j
o
Kolom no. 3
Kolom no. 2
Kolom no. 4
Kolom no. 1
Kolom no. 0





16.4   Menyiapkan Array Numerik Dua Dimensi Lengkap Dengan Isinya
Contoh-1.
#include<stdio.h>
Void main()
{ int A[3][5] = {5,12,17,10,7,
                15,6,25,2,19,
                4,9,20,22,11 };
     =
}
Public class contoh01
{public static
 void main (String[] args)
 {int [][]A = {{5,12,17,10,7},
            {15,6,25,2,19},
            {4,9,20,22,11}
           };
  }
}
C/C++                                                                         Java
                     
         
                                                                                                                             Output :
0

1

2
0        1        2        3        4
5
12
17
10
7
15
6
25
2
19
4
9
20
22
11

·    Bila jumlah bilangan yang akan disimpan lebih banyak dari jumlah elemen atau kolom yang tersedia makan akan terjadi ERROR pada saat program di kompilasi
·    Kolom harus dinyatakan jumlah elemennya, sedangkan baris tidak dinyatakan, maka jumlah baris disesuaikan dengan jumlah nilai atau data yang disimpan
·    Jika ada 18 buah nilai, maka dibuat menjadi 20, supaya lengkap : 4x5. Sisa 2 elemen akan diisi dengan nol.
·    Bila disiapkan 3x5=15 kolom, tapi diisi kurang dari 15 buah nilai, maka sisa kolom akan diisi dengan NULL, yang bila dicetak dengan format numeric (“%i”) akan tercetak nol (0) dan bila dicetak dengan format character (“%c”) akan tercetak kosong atau spasi
Note :



16.5   Menyiapkan Array Character Dua Dimensi Lengkap Dengan Isinya
Contoh-1.
#include<stdio.h>
void main()
{
char A[3][5] ={‘A’,’B’,’C’,’D’,’E’,
‘F’,’G’,’H’,’I’,’J’,
‘K’,’L’,’M’,’N’,’O’ };
Public class contoh01
{public static
 void main (String[] args)
{char [][]A =
{{‘A’,’B’,’C’,’D’,’E’},
{‘F’,’G’,’H’,’I’,’J’},
{‘K’,’L’,’M’,’N’,’O’}
           };
  }
C/C++                                                                         Java

 


·    Bila disiapkan 3x5=15 kolom, tapi diisi kurang dari 15 buah nilai, maka sisa kolom akan diisi dengan NULL, yang bila dicetak dengan format (“%i” akan tercetak nol (0) dan bila dicetak dengan format character (“%c”) akan tercetak karakter untuk NULL.
·    Akan terjadi ERROR karena jumlah karakter yang akan disimpan melebihi jumlah tempat atau jumlah elemen yang disiapkan.
Note :                                                                                               Output :
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
·    Akan terjadi ERROR  jika mengisi 6 karakter ditempat yang disediakan hanya sebanyak 5 elemen atau 5 lokasi. Jadi dilihat isi per baris, bukan secara keseluruhan.
·    Pada program Java, String adalah class. Data yang dibentuk dengan string merupakan sebuah obyek string, yang isinya tidak bisa diubah, tidak bisa diambil karakter per karakter. Untuk mengambil karakter tertentu dapat menggunakan method charAt() , atau menggunakan method toCharArray() bila ingin dionversi ke karakter, atau menggunakan method parselnt() untuk konversi ke bentuk numerik.
0

1

2
0        1        2        3        4












Komentar