Pada tulisan sebelumnya sudah saya jelaskan apa itu Array 1 dimensi dan 2 dimensi. Kali ini saya akan menjelaskan bagaimana cara membuat Array 2 Dimensi dari Array 1 Dimensi. pembuatan Array 2 dimensi ini hanya bisa di lakukan bila anda benar-benar memahami apa itu Array 1 Dimensi dan Array 2 Dimensi. Dengan begitu anda akan bisa memainkan indeks-indeks dari masing-masing Array tersebut.
Untuk lebih memahaminya maka kita langsung saja ke fungsi konversinya :
k=0; // merupakan parameter untuk indeks array 1 dimensi.
for(int i=0; i<n; i++){ // i untuk indeks baris array 1 dimensi.
for(int j=0; j<m; j++){ // j untuk indeks kolom array 2 dimensi
y[i][j]=x[k]; // pemberian nilai array 2 dimensi.
k=k+1; // penambahan nilai k di saat proses penambahan nilai selesai
}
cout<<endl; // pergantian baris setiap perulangan j keluar dari syarat
}
}
Berikut source code proogram secara keseluruhan :
#include <cstdlib>
#include <iostream>
using namespace std;
class convert{
friend istream& operator>>(istream&, convert&);
friend ostream& operator<<(ostream&, convert&);
public:
convert();
void pindah();
private:
int x[100],y[100][100];
int l,k,m,n;
};
convert::convert(){
cout<<"\tProgram Memindah Array 1 Dimensi Ke 2 Dimensi"<<endl;
}
istream& operator>>(istream& in, convert& a){
cout<<"Masukkan Banyak Digit Array 1 Dimensi :"; in>>a.l;
for(int i=0; i<a.l; i++){
cout<<"Imput Data ke ["<<i+1<<"]:";
in>>a.x[i];
}
cout<<"Masukkan Baris Array 2 Dimensi :"; in>>a.n;
cout<<"Masukkan Kolom Array 2 Dimensi :"; in>>a.m;
return in;}
ostream& operator<<(ostream& out, convert& b){
out<<"Data Array 1 Dimensi :"<<endl;
for(int i=0; i<b.l; i++){
out<<b.x[i]<<" ";
}
out<<"Data Array Setelah di Pindah :"<<endl;
for(int i=0; i<b.n; i++){
for(int j=0; j<b.m; j++){
out<<b.y[i][j]<<" ";
}
out<<endl;
}
return out;}
void convert::pindah(){
k=0;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
y[i][j]=x[k];
k=k+1;
}
cout<<endl;
}
}
int main(int argc, char *argv[])
{
convert g;
cin>>g;
g.pindah();
cout<<g;
system("PAUSE");
return EXIT_SUCCESS;
}
Hasil Running program :
Untuk lebih memahaminya maka kita langsung saja ke fungsi konversinya :
k=0; // merupakan parameter untuk indeks array 1 dimensi.
for(int i=0; i<n; i++){ // i untuk indeks baris array 1 dimensi.
for(int j=0; j<m; j++){ // j untuk indeks kolom array 2 dimensi
y[i][j]=x[k]; // pemberian nilai array 2 dimensi.
k=k+1; // penambahan nilai k di saat proses penambahan nilai selesai
}
cout<<endl; // pergantian baris setiap perulangan j keluar dari syarat
}
}
Berikut source code proogram secara keseluruhan :
#include <cstdlib>
#include <iostream>
using namespace std;
class convert{
friend istream& operator>>(istream&, convert&);
friend ostream& operator<<(ostream&, convert&);
public:
convert();
void pindah();
private:
int x[100],y[100][100];
int l,k,m,n;
};
convert::convert(){
cout<<"\tProgram Memindah Array 1 Dimensi Ke 2 Dimensi"<<endl;
}
istream& operator>>(istream& in, convert& a){
cout<<"Masukkan Banyak Digit Array 1 Dimensi :"; in>>a.l;
for(int i=0; i<a.l; i++){
cout<<"Imput Data ke ["<<i+1<<"]:";
in>>a.x[i];
}
cout<<"Masukkan Baris Array 2 Dimensi :"; in>>a.n;
cout<<"Masukkan Kolom Array 2 Dimensi :"; in>>a.m;
return in;}
ostream& operator<<(ostream& out, convert& b){
out<<"Data Array 1 Dimensi :"<<endl;
for(int i=0; i<b.l; i++){
out<<b.x[i]<<" ";
}
out<<"Data Array Setelah di Pindah :"<<endl;
for(int i=0; i<b.n; i++){
for(int j=0; j<b.m; j++){
out<<b.y[i][j]<<" ";
}
out<<endl;
}
return out;}
void convert::pindah(){
k=0;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
y[i][j]=x[k];
k=k+1;
}
cout<<endl;
}
}
int main(int argc, char *argv[])
{
convert g;
cin>>g;
g.pindah();
cout<<g;
system("PAUSE");
return EXIT_SUCCESS;
}
Hasil Running program :