Pengertian dan Penjelasan Array Dua Dimensi C++

komputerdia.com - Array dua dimensi atau yang sering dikenal dengan istilah matriks merupakan Pengembangan dari Array satu dimensi, jika pada array satu dimensi hanya terdiri dari satu baris dan beberapa kolom saja, maka untuk array dua dimensi ini terdiri lebih dari satu (beberapa) baris dan kolom.

Dengan demikian array dua dimensi tersusun dalam bentuk kolom serta baris, yang mana indeks pertamanya dinyatakan sebagai baris dan untuk indeks keduanya dinyatakan sebagai kolom.

Sama dengan halnya array satu dimensi, array dua dimensi juga sebelum digunakan haruslah dilakukan sebuah deklarasi , dan bentuk umum untuk pendeklarasian array dua dimensi ini adalah sebagai berikut
 tipe_data nama_var_array  [banyak_baris] [bayak_kolom]; 
Artinya :
  • tipe_data       : Menyatakan tipe data elemen array
  • banyak_baris : Menyatakan maksimum banyaknya suatu baris
  • banyak_kolom   : Menyatakan maksimum banyaknya satu kolom

Baca Juga Artikel Menarik Lainnya :

Pengertian dan Penjelasan Array Dua Dimensi C++

Penjelasan Array Dua Dimensi C++

Selain penmgertian diatas, ada juga yang mendefinisikan bahwa Array Dua Dimensi adalah adalah sebutan untuk array yang penomoran index-nya menggunakan 2 buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius.

Diagram kartesius merupakan diagram yang biasa kita pakai untuk membuat grafik. Disini terdapat sumbu X dan sumbu Y. Sebuah titik dalam diagram kartesius ini harus disebut secara berpasangan, seperti (2,3) atau (-3, 1).

Pengertian dan Penjelasan Array Dua Dimensi C++
Analogi lain adalah dengan matriks. Dalam matematika, matrik terdiri dari kolom dan baris. Kembali, untuk menentukan nilai dari sebuah matriks, kita harus sebut secara berpasangan seperti baris 1 kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang menjadi dasar dari array 2 dimensi.

Untuk membuat array 2 dimensi di dalam bahasa C, kita membuat 2 kali tanda kurung siku setelah nama variabel, seperti contoh berikut:
 int bilangan[2][2]; 
Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan. Variabel bilangan ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai matriks, disini kita membuat matriks 2 x 2.

Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali, seperti contoh berikut:
bilangan[0][0] = 100;
bilangan[0][1] = 101;
bilangan[1][0] = 110;
bilangan[1][1] = 111; 
Perhatiakan contoh dibawah ini 

int Mat_A[3][4]

Maka data diatas dapat kita gambarkan pengalokasian pada memorinya adalah seperti berikut

Pengertian dan Penjelasan Array Dua Dimensi C++
Mengisi elemen array dua dimensi sama halnya dengan mengisi elemen pada array satu dimensi, yaitu dengan cara melakukan Inisialisasi, menggunakan operator penugasan dan dibaca dari media masukan.

3 Cara Mengisi Elemen Array Dua Dimensi

1. Inisialisasi Array Dua Dimensi

Memberikan elemen array pada saat pendeklarasian variabel array, bentuk umum dari inisialisasi array dua dimensi adalah sebagai berikut
 tipe_data nama_var_array [banyak_baris] [banyak_kolom] = {{baris-0}, {baris-1}, . . . ., {baris-n-1}};
Dimana elemen - elemen pada baris-0, baris-1,....,baris-n-1 juga terdiri dari beberapa kolom taitu kolom-0, kolom-1,....., kolom-m-1.

Sama halnya dengan inisialisasi array satu dimensi, jika elemen - elemen kurang dari ukuran baris dan kolom maka akan diberikan nilai atau harga 0 (nol), tetapi jika elemen lebih dari ukuran baris dan kolom maka akan terjadi kesalahan " Too many initializers " Perhatikan contoh dibawah ini :

Diketahui matriks A seperti dibawah ini

Pengertian dan Penjelasan Array Dua Dimensi C++
Maka untuk penginisialisasian matrik diatas adalah sebagai berikut : int Mat_A = {{2,3,9,2},{7,5,4,3},{3,2,5,4}}

Contoh pembuatan program untuk mencetak elemen - elemen Matriks A yang mempunyai ukuran 3x4 yang telah dilakukan penginisialisasian
 /*Array dua dimensi dibaca dari media masukan
Nama File : Lat_5*/

#include<iostream.h>
#include<conio.h>
main () 
{
int Mat_A[3] [4]={{3,1,6,8},{5,2,3,4},{6,1,2,4}};
int i,j;

//Mencetak Elemen Matriks
for (i=0;1<3;i++)
{
for(j=0;j<4; j++)
cout<<mat_A[i] [j]<<" ";cout<<endl;
}
getch();
}

2. Menggunakan Operator Penugasan

Mengisi elemen array dua dimensi dengan menggunakan operator penugasan dapat anda lakukan dengan bentuk format umum seperti dibawah ini

nama_var_array[baris] [kolom] = elemen;

dimana elemen adalah harga yang akan dilakukan penyimpanan pada nama_var_array dan baris serta kolom tertentu juga dengan tipe data elemen harus sama dengan tipe data variabel array.

contoh :
  • Mat_A[0] [0] = 2  → Mengisi elemen Mat_A pada baris 0 kolom 0 dengan 2;
  • Mat_A[0] [1] = 3  → Mengisi elemen Mat_A pada baris 0 kolom 1 dengan 3;
  • Mat_A[1] [0] = 7  → Mengisi elemen Mat_A pada baris 1 kolom 0 dengan 7;
  • Mat_A[2] [3] = 5  → Mengisi elemen Mat_A pada baris 2 kolom 3 dengan 5; 

3. Dibaca dari Media Masukan

Pada cara ketiga adalah elemen dibaca melalui media masukan atau dalam hal ini bisa kita asumsikan sebagai keyboard, untuk bisa melakukan pembacaan array pada metode ketiga ini, anda dapat menggunakan format umum dibawah ini
 cin>>nama_var_array [indeks_baris] [indeks_kolom];
Contoh :

Buatlah program untuk membaca dua buah Matriks A berordo mxn dan Matriks B berordo kxl. Hitung penjumlahan (Matriks C), pengurangan (Matriks D) dan Perkalian (Matriks E) antara kedua matriks kemudian cetak seluruh matriks.

Catatan :
Dua buah matriks dapat dijumlahkan atau dikurangkan jika kedua matriks memiliki ordo yang sama, serta dua buah matriks dapat dikalikan jika kolom matriks pertama sama dengan baris Matriks kedua
 /* Array Dua Dimensi Penjumlahan, Pengurangan
   dan perkalian dua buah matriks
   Nama File : Lat_I_06 */

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
main()
{

int Mat_A [4] [4], Mat_B [4] [4];
int Mat_C [4] [4], Mat_D [4] [4], Mat_E [4] [4];
int i, j, k;
int Baris1, Kolom1;
int Baris2, Kolom2;
do
{

clrscr();
cout<<"Baris dan kolom tidak boleh lebih dari 4 ! !\n\n";
cout<<"Masukkan Banyak Baris Matriks A : ";
cin>>Baris1;
cout<<"Masukkan Banyak Kolom Matriks A : ";
cin>>Kolom1;
cout<<"Masukkan Banyak Baris Matriks B : ";
cin>>Baris2;
cout<<"Masukkan Banyak Kolom Matriks B: ";
cin>>Kolom2;
}
while (Baris1>4 || Kolom1>4 || Baris2> || Kolom2>4) ;

//Membaca elemen-elemen matriks A
cout<<"Matriks A("<<Baris1<<"x"<<Kolom1<<") \n";
for (i=0; i<Baris1;i++)
{
for(j=0;j<kolom1; j++)
{
cout<<"elemen "<<i<<","<<j<<" = ";
cin>>Mat_A [i] [j];
}

}
cout<<endl;

//Membaca elemen-elemen matriks B
cout<<"Matriks B("<<Baris2<<"x"<<Kolom2<<") \n";
for (i=0; i<Baris2;i++)
{
for (j=0; j<Kolom2; j++)
{
cout<<"elemen "<<i<<", "<<j<<" = ";
cin>>Mat_B [i] [j];
}
}
cout<<endl;

//Mencetak Elemen Matriks A
cout<<'\nMatriks A ("<<Baris1<<"x"<<Kolom1<<") \n";
for (i=0; i<Baris1;i++)
{
for (j=0; j<Kolom1; j++)
cout<<setw (3) <<Mat_A [i] [j];
cout<<endl;
}

//Mencetak Elemen Matriks B
cout<<'\nMatriks B ("<<Baris2<<"x"<<Kolom2<<") \n";
for (i=0; i<Baris2;i++)
{
for (j=0; j<Kolom2; j++)
cout<<setw (3) <<Mat_B [i] [j];
cout<<endl;
}

if ((Baris1==Baris2) && Kolom1==Kolom2))
{

//Menghitung Jumlah dan Selisih du Buah Matriks
for (i=0; i<Baris1;i++)
{
for (j=0; j<Kolom1; j++)
{

Mat_C [i] [j] = Mat_A [i] [j] + Mat_B [i] [j]; //hitung jumlah
Mat_D [i] [j] = Mat_A [i] [j] - Mat_B [i] [j]; //hitung selisih
}
}

//Mencetak Elemen Matriks C
cout<<"\nMatriks C("<<Baris1<<"x"<<Kolom1<<") = ";
cout<<"Matriks A("<<Baris1<<"x"<<Kolom1<<") + ";
cout<<"Matriks B("Baris2<<"x"<<Kolom2<<") \n";
for (i=0; i<Baris1; i++)
{
for (j=0; j<Kolom1; j++)
cout<<setw (3) <<Mat_C [i] [j];
cout<<endl;
}

//Mencetak Elemen Matriks D
cout<<"\nMatriks C("<<Baris1<<"x"<<Kolom1<<") = ";
cout<<"Matriks A("<<Baris1<<"x"<<Kolom1<<") - ";
cout<<"Matriks B("Baris2<<"x"<<Kolom2<<") \n";
for (i=0; i<Baris1; i++)
{
for (j=0; j<Kolom1; j++)
cout<<setw (3) <<Mat_D [i] [j];
cout<<endl;
}
}
else
cout<<"\nTidak dapat dijumlahkan dan dikurangkan!!! \n\n";
if (Kolom1==Baris2)
{

//Menghitung Perkalian dua Buah Matriks
for (i=0; i<Baris1;i++)
{
for (j=0; j(Kolom2; j++)
{
Mat_E [i] [j]=0;
for (k=0; k<Kolom1; k++)
Mat_E [i] [j]=Mat_E [i] [j] + (Mat_A [i] [k] * Mat_B [k] [j] );
}
}

//Mencetak Elemen Matriks E
out<<"\nMatriks E("<<Baris1<<"x"<<Kolom1<<") = ";
cout<<"Matriks A("<<Baris1<<"x"<<Kolom1<<") * ";
cout<<"Matriks B("Baris2<<"x"<<Kolom2<<") \n";
for (i=0; i<Baris1; i++)
{
for (j=0; j<Kolom1; j++)
cout<<setw (3) <<Mat_E [i] [j];
cout<<endl;
}
}
else
cout<<\nKedua Matriks tidak dapat dikalikan!!!";
getch();
}

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2