Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

15
Multi Dimensi

description

Materi Dasar Pemrograman C++

Transcript of Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

Page 1: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

Multi Dimensi

Page 2: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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.

Page 3: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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]

Page 4: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 5: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 6: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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.

Page 7: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 8: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 9: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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 }};

Page 10: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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;

}

Page 11: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

#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]);

}

Page 12: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 13: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 14: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

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

Page 15: Bu Naim Dasprog - Pertemuan 6 Array MultiDimensi

Buat transpose dari suatu matriks 3x3, kemudian cetak hasil penjumlahan antara matriks asli dengan matriks transpose