bu naim dasprog - pertemuan 6 array multidimensi
DESCRIPTION
Materi Dasar Pemrograman C++TRANSCRIPT
Multi Dimensi
array dari array berdimensi satu.
array dimana masing-masing anggotanya juga array.
Array dua dimensi terdiri dari baris dan kolom. Baris menggambarkan suatu kategori dimana
datanya mempunyai kategori lain yang digambarkan pada kolom.
Contoh : array mahasiswa elektro bisa dikategorikan
dalam angkatan dan program studinya.
Bentuk umum : identifier nama[ukuran1][ukuran2]
Identifer adalah tipe dari array apakah karakter, integer, real dsb.
nama berdasar aturan C. Ukuran1 menunjukkan ukuran baris yang dipesan, ukuran2 merupakan ukuran kolom dari array tersebut. Contoh :
Jumlah mahasiswa Manajemen Informatika dikategorikan dalam angkatan (terdapat 3 angkatan) :
int jumlah_mhs[3]; Jumlah mahasiswa Manajemen Informatika dikategorikan
dalam angkatan dan kelas (terdapat 3 angkatan dan setiap angkatan terdapat 4 kelas) :
int Jumlah_mhs[3][4]
char A[4][3]; {
{
A[0][0]A[0][1]A[0][2]A[1][0]A[1][1]A[1][2]A[2][0]A[2][1]A[2][2]A[3][0]A[3][1]A[3][2]
A[0]
A[1]
A[2] A[3]
{{
A adalah array berukuran 4.
Masing-masing elemen A adalah array yang mempunyai 3 elemen char
int table[3][10];
-- -- ----
4 5 6 3 0 2 8 9 7 1
-- -- ---- -- ---- -- ---- -- -- ---- -- ---- -- ---- -- -- ---- -- -- 0
2 1
char table[3][6]; table[1][2] = 'a';char resp = table[1][2];
4 5 3 0 2 1
-- -- ----
table
----
-- a ---- ----
-- -- ---- ---- 0
2
1
identifier nama[ukuran1][ukuran2] = { elemen1, elemen2, …, elemen};
Contoh :float bil[2] [3] = { 1,2,3, 4,5,6}
elemen bil [0] [0] = 1, elemen bil [0] [1] = 2, elemen bil [0] [2] = 3, elemen bil [1] [0] = 4, elemen bil [1] [1] = 5, elemen bil [1] [2] = 6.
const int NUM_ROWS = 3, NUM_COLS = 6;char table[NUM_ROWS][NUM_COLS]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’};
4 5 3 0 2 1
n o pm
table
rq
h i jg lk
b c da fe 0
2
1
Untuk mempermudah dalam membaca data inisialisasi dari suatu array, data masing-masing baris dapat dipisahkan dalam tanda { }.
const int NUM_ROWS = 3, NUM_COLS = 6;Char table[NUM_ROWS][NUM_COLS]={ {’a’,’b’,’c’,’d’,’e’,’f’}, {’g’,’h’,’i’,’j’,’k’,’l’}, {’m’,’n’,’o’,’p’,’q’,’r’} }; 4 5 3 0 2 1
n o pm
table
rq
h i jg lk
b c da fe 0
2
1
Cara penulisan inisialisasifloat Distance[2][4] = { 44.14, 20.52, 96.08,
48.78, 6.28, 68.04, 64.55,
634.12 };
Atau
float Distance[2][4] = { {44.14, 20.52, 96.08, 48.78}, {6.28, 68.04, 64.55, 634.12 }};
int main(){float Distance[2][4] = {44.14, 720.52, 96.08, 468.78, 6.28, 68.04, 364.55, 634.12};
printf("Anggota array”);printf( "\nDistance [0][0] %f: " , Distance[0][0]);printf("\nDistance [0][1] %f: " , Distance[0][1]);printf("\nDistance [0][2] %f: " ,Distance[0][2]);printf( "\nDistance [0][3] %f : " ,Distance[0][3]);printf( "\nDistance [1][0] %f : " , Distance[1][0]);printf( "\nDistance [1][1] %f : " , Distance[1][1]);printf("\nDistance [1][2] %f : " ,Distance[1][2]);printf( "\nDistance [1][3] %f : " ,Distance[1][3]);return 0;
}
#include <iostream>void main(){
float Distance[][4] = { { 44.14, 720.52, 96.08, 468.78 }, { 6.28, 68.04, 364.55, 634.12 }
};
printf("Anggota array");for(int i = 0; i < 2; ++i)
for(int j = 0; j < 4; ++j)printf("\nDistance [%d][%d]: %f" , i, j,
Distance[i][j]);
}
Cara lain untuk memberi nilai array adalah dengan memberi masukan dari keyboard.
Untuk Array 2D diperlukan looping didalam looping (nested loop).
Jika array berdimensi [n][m], maka looping pertama dianggap sebagai baris dari 0 sampai n-1. Sedang looping kedua sebagai kolom dari 0 sampai m-1
const int NUM_ROWS = 3, NUM_COLS = 6; for (int row=0; row < NUM_ROWS; row++) for (int column = 0; column < NUM_COLS; column++) cin>>table[row][column];
4 5 3 0 2 1
a ln
table
ra
e n sm oi
w o -t id 0
2
1
Nilai array dapat dicetak satu persatu dengan nested loop.
const int NUM_ROWS = 3, NUM_COLS = 6for (int row=0; row < NUM_ROWS; row++)for (int col= 0; col< NUM_COLS; col++) cout << table[row][col];
4 5 3 0 2 1
a ln
table
ra
e n sm oi
w o -t id 0
2
1
const int T_SIZE = 4; void main(){ int row, col; int add_table [T_SIZE][T_SIZE];
for (row = 0; row < T_SIZE; row++) for (col = 0; col < T_SIZE; col++) add_table[row][col] = row + col;
for (row = 0; row < T_SIZE; row++)for (col = 0; col < T_SIZE; col++)
cout << add_table[row][col] << " ";}
3 42
table 3 0 2 1
52 3 411 2 30 0
2 1
4 53 6 3
Buat transpose dari suatu matriks 3x3, kemudian cetak hasil penjumlahan antara matriks asli dengan matriks transpose