Multidimensional array merupakan array yang memiliki lebih dari satu dimensi atau array dari sebuah array, Multidimensional array terdiri atas 2 macam yaitu 2D dan 3D, Dalam bahasa pemrograman C++ kita bisa mendefinisikan Multidimensional Array, Data dalam multidimensional array tersimpan seperti sebuah tabel atau dikenal sebagai matrix, Berikut cara mendeklarasikan multidimensional array:
tipe_data nama_array[size1][size2]...[sizeN];
Contohnya:
int tiga_dimensi[4][8][2];
Sebagai contoh sederhana, kita akan membahas Array Multidimensional yang gampang, pada dasarnya Two-Dimensional Array ini merupakan sebuah list/daftar dari array satu dimensi, Cara mendeklarasikannya sebagai berikut:
tipe_data nama_array[baris][kolom]
- tipe_data - Bisa berupa tipe data apapun yang valid dalam bahasa pemrograman C++.
- nama_array - Nama atau Identifier untuk variable.
Array dua dimensi ini bisa di imajinasikan sebagai tabel yang memiliki baris dan kolom, Berikut contoh jika:
int duaDim[3][4];
Maka bisa di referensikan seperti:
Multidimesional Array bisa di inisialisasikan dengan menuliskan kurung kurawal { }
untuk tiap barisnya, Berikut merupakan array dengan 3 baris yang memiliki 4 kolom.
// duaDim[baris][kolom]
int duaDim[3][4] = {
{0, 1, 2 ,3}, // Baris index 0
{4, 5, 6, 7}, // Baris index 1
{8, 9, 10, 11} // Baris index 2
};
Atau cara kedua yaitu:
// duaDim[baris][kolom]
int duaDim[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
// Baris akan dipisahkan ketika kolomnya telah tercapai yaitu 4
// Maka saat array mencapai angka 3 atau 7, index kolom akan diulang ke 0
Elemen yang terdapat dalam array dua dimensi bisa di akses menggunakan index dari baris dan index kolomnya, Misalnya:
int duaDim[3][4] = {
{0, 1, 2 ,3},
{4, 5, 6, 7},
{8, 9, 10, 11}
};
int val = duaDim[2][1];
// Pada statement diatas elemen yang terdapat pada
// array baris kedua dan kolom pertama akan disimpan kedalam variable val
// maka, val = 9
Catatan: index selalu dimulai dengan 0.
Selanjutnya kita bisa menyimpan address dari value array multidimensional menggunakan pointer, Cara mendeklarasikannya:
int arr[2][3] = {
{0,1,2},
{3,4,5}
};
int* ptr = &arr[1][1]; // menyimpan address angka 4 dari array multidimensional
std::cout << ptr << std::endl;
std::cout << *ptr << std::endl;
/* Expected output:
0x7fffcecb45c4
4
*/
Cara lain jika ingin mengambil seluruh array:
int arr[2][3] = {
{0,1,2},
{3,4,5}
};
int (*ptr)[2][3] = &arr; // menyimpan address array multidimensional
for(int baris = 0; baris < 2; baris++){
for(int kolom = 0; kolom < 3; kolom++){
std::cout << (*ptr)[baris][kolom] << std::endl;
}
}
/* Expected output:
0
1
2
3
4
5
*/
Catatan: address akan selalu berganti, maka output address akan berbeda tapi output valuenya akan tetap sama.
#include <iostream>
int main(){
// Mendeklarasikan dan menginisialisasikan array dua dimensi
int angka[4][2] = {
{0, 1},
{2, 3},
{4, 5},
{6, 7}
};
// Mendeklarasikan angka yang akan ditambah
int val = 5;
// Simpan angka yang akan digunakan untuk menambah
int tambahkan = angka[1][0]; // tambahkan = 2;
// Menghitung totalnya
int total = val + tambahkan;
std::cout << "Hasil dari " << val << "+" << tambahkan << " adalah " << total;
/* Expected Output:
"Hasil dari 5+2 adalah 7"
*/
}
- Referensi selengkapnya seperti Three-Dimensional Array, Mengambil input, dan lain-lainnya bisa cek disini
- Apa itu multidimensional array dan berapa ukuran maksimumnya?
- Referensi Pointer to Multidimensional array
- kelas terbuka - multidimensional array