Dalam pemrograman C++, contoh program C++ array 2 dimensi merupakan topik fundamental yang wajib dikuasai setiap programmer. Array 2 dimensi atau yang sering disebut matrix adalah struktur data yang memungkinkan kita menyimpan data dalam bentuk baris dan kolom, seperti tabel atau spreadsheet. Artikel ini akan membahas secara mendalam berbagai contoh implementasi array 2 dimensi dalam C++.
Pengertian Array 2 Dimensi dalam C++
Array 2 dimensi adalah array yang memiliki dua indeks, yaitu indeks baris dan indeks kolom. Struktur ini sangat berguna untuk merepresentasikan data dalam bentuk matriks, tabel, atau grid. Dalam C++, array 2 dimensi dapat dideklarasikan dengan syntax:
// Syntax dasar array 2 dimensi
tipe_data nama_array[jumlah_baris][jumlah_kolom];
// Contoh deklarasi
int matrix[3][4]; // Array 3 baris x 4 kolom
double nilai[5][3]; // Array 5 baris x 3 kolom
char papan[8][8]; // Array 8 baris x 8 kolom (seperti papan catur)
Contoh Program 1: Deklarasi dan Inisialisasi Array 2D
#include <iostream>
using namespace std;
int main() {
// Deklarasi dan inisialisasi array 2D
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
cout << "=== MATRIX 3x3 ===" << endl;
// Menampilkan array menggunakan nested loop
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
return 0;
}
=== MATRIX 3×3 ===
1 2 3
4 5 6
7 8 9
Contoh Program 2: Input Data ke Array 2D dari User
#include <iostream>
using namespace std;
int main() {
int baris, kolom;
cout << "Masukkan jumlah baris: ";
cin >> baris;
cout << "Masukkan jumlah kolom: ";
cin >> kolom;
// Deklarasi array dinamis
int matrix[baris][kolom];
cout << "\n=== INPUT DATA MATRIX ===" << endl;
// Input data dari user
for(int i = 0; i < baris; i++) {
for(int j = 0; j < kolom; j++) {
cout << "Masukkan elemen [" << i << "][" << j << "]: ";
cin >> matrix[i][j];
}
}
cout << "\n=== MATRIX YANG DIINPUT ===" << endl;
// Menampilkan matrix
for(int i = 0; i < baris; i++) {
for(int j = 0; j < kolom; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
return 0;
}
Contoh Program 3: Operasi Penjumlahan Matrix
#include <iostream>
using namespace std;
int main() {
const int ROWS = 3;
const int COLS = 3;
int matrixA[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int matrixB[ROWS][COLS] = {
{9, 8, 7},
{6, 5, 4},
{3, 2, 1}
};
int hasil[ROWS][COLS];
cout << "=== PENJUMLAHAN MATRIX ===" << endl;
// Proses penjumlahan
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
hasil[i][j] = matrixA[i][j] + matrixB[i][j];
}
}
// Menampilkan Matrix A
cout << "\nMatrix A:" << endl;
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
cout << matrixA[i][j] << "\t";
}
cout << endl;
}
// Menampilkan Matrix B
cout << "\nMatrix B:" << endl;
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
cout << matrixB[i][j] << "\t";
}
cout << endl;
}
// Menampilkan hasil penjumlahan
cout << "\nHasil A + B:" << endl;
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
cout << hasil[i][j] << "\t";
}
cout << endl;
}
return 0;
}
Contoh Program 4: Transpose Matrix
#include <iostream>
using namespace std;
int main() {
const int ROWS = 3;
const int COLS = 4;
int matrix[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int transpose[COLS][ROWS];
cout << "=== TRANSPOSE MATRIX ===" << endl;
// Proses transpose
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
transpose[j][i] = matrix[i][j];
}
}
// Menampilkan matrix asli
cout << "\nMatrix Asli (" << ROWS << "x" << COLS << "):" << endl;
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
// Menampilkan hasil transpose
cout << "\nMatrix Transpose (" << COLS << "x" << ROWS << "):" << endl;
for(int i = 0; i < COLS; i++) {
for(int j = 0; j < ROWS; j++) {
cout << transpose[i][j] << "\t";
}
cout << endl;
}
return 0;
}
Contoh Program 5: Mencari Nilai Maksimum dan Minimum
#include <iostream>
using namespace std;
int main() {
int matrix[4][3] = {
{15, 23, 8},
{42, 7, 19},
{31, 56, 12},
{9, 38, 27}
};
int maksimum = matrix[0][0];
int minimum = matrix[0][0];
int maxRow = 0, maxCol = 0;
int minRow = 0, minCol = 0;
cout << "=== PENCARIAN NILAI MAX & MIN ===" << endl;
// Menampilkan matrix
cout << "\nMatrix 4x3:" << endl;
for(int i = 0; i < 4; i++) {
for(int j = 0; j < 3; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
// Mencari nilai maksimum dan minimum
for(int i = 0; i < 4; i++) {
for(int j = 0; j < 3; j++) {
if(matrix[i][j] > maksimum) {
maksimum = matrix[i][j];
maxRow = i;
maxCol = j;
}
if(matrix[i][j] < minimum) {
minimum = matrix[i][j];
minRow = i;
minCol = j;
}
}
}
cout << "\n=== HASIL PENCARIAN ===" << endl;
cout << "Nilai Maksimum: " << maksimum << " pada posisi [" << maxRow << "][" << maxCol << "]" << endl;
cout << "Nilai Minimum: " << minimum << " pada posisi [" << minRow << "][" << minCol << "]" << endl;
return 0;
}
Contoh Program 6: Perkalian Matrix
#include <iostream>
using namespace std;
int main() {
const int ROWS_A = 2, COLS_A = 3;
const int ROWS_B = 3, COLS_B = 2;
// Matrix A (2x3)
int matrixA[ROWS_A][COLS_A] = {
{1, 2, 3},
{4, 5, 6}
};
// Matrix B (3x2)
int matrixB[ROWS_B][COLS_B] = {
{7, 8},
{9, 10},
{11, 12}
};
// Matrix hasil (2x2)
int hasil[ROWS_A][COLS_B];
cout << "=== PERKALIAN MATRIX ===" << endl;
// Inisialisasi matrix hasil dengan 0
for(int i = 0; i < ROWS_A; i++) {
for(int j = 0; j < COLS_B; j++) {
hasil[i][j] = 0;
}
}
// Proses perkalian matrix
for(int i = 0; i < ROWS_A; i++) {
for(int j = 0; j < COLS_B; j++) {
for(int k = 0; k < COLS_A; k++) {
hasil[i][j] += matrixA[i][k] * matrixB[k][j];
}
}
}
// Menampilkan hasil
cout << "\nHasil A x B (2x2):" << endl;
for(int i = 0; i < ROWS_A; i++) {
for(int j = 0; j < COLS_B; j++) {
cout << hasil[i][j] << "\t";
}
cout << endl;
}
return 0;
}
Tips dan Best Practices
1. Inisialisasi Array
- Selalu inisialisasi array sebelum digunakan
- Gunakan nested loop untuk mengakses semua elemen
- Perhatikan batas indeks array (0 hingga n-1)
2. Memory Management
- Array 2D menggunakan memori secara berurutan
- Ukuran array harus diketahui saat compile time
- Untuk array dinamis, gunakan pointer atau vector
3. Performance Optimization
- Akses elemen secara row-major untuk performa optimal
- Hindari operasi yang tidak perlu dalam nested loop
- Gunakan const untuk array yang tidak berubah
🙋♂️ Frequently Asked Questions (FAQ)
Kesimpulan
Memahami contoh program C++ array 2 dimensi adalah fondasi penting dalam pemrograman C++. Array 2D memungkinkan kita untuk mengelola data dalam bentuk matrix yang sangat berguna untuk berbagai aplikasi seperti pengolahan gambar, game development, scientific computing, dan analisis data.
Key Points yang telah dipelajari:
- Deklarasi dan inisialisasi array 2D
- Operasi dasar: input, output, pencarian
- Operasi matrix: penjumlahan, perkalian, transpose
- Algoritma pencarian dan statistik
- Best practices dan optimasi performa
Dengan menguasai konsep-konsep ini, Anda sudah memiliki foundation yang kuat untuk mengembangkan aplikasi yang lebih kompleks menggunakan struktur data array 2 dimensi dalam C++.
/script>