Setelah membahas mengenai pengertian array dan array 1 dimensi saatnya lanjut kepembahasan array 2 dimensi dan multidimensi.
C++ juga menyediakan array 2 dimensi. Array ini dapat digunakan untuk banyak keperluan program. Berikut ada data mahasiswa baru di jurusan Teknik Informatika, Manajemen Informatika dan Sistem Informasi pada suatu Universitas dari tahun 2015 hingga 2019. Terlihat pada tabel berikut ini :
Gambar 1 tabel data mahasiswa baru
Mendefinisikan Array 2 Dimensi
Dari tabel pada Gambar 1 dapat dibuat kedalam bentuk array 2 dimensi. Pendefinisiannya :
int data_mhs [3][5];
- 3 menyatakan jumlah baris (mewakili jurusan)
- 5 menyatakan jumlah kolom (mewakili tahun mahasiswa baru)
dari pendefinisian array diatas dapat dinyatakan pada gambar berikut ini :
Gambar 2 array 2 dimensi
Sama seperti array 1 dimensi, data pada array juga ditempatkan pada memori yang berurutan.
Mengakses Array 2 Dimensi
Elemen-elemen pada array 2 dimensi dapat diakses dengan bentuk :
nama_array[indeks_baris][indeks_kolom];
elemen-elemen pada Gambar 2 dapat dinyatakan dengan Gambar 3 berikut :
Gambar 3 penomoran elemen array 2 dimensi
Contoh pengaksesan elemen array :
1. data_mhs[0][3] = 180;
Instruksi memberikan nilai 180 ke baris 0 kolom 3.
2. cout<<data_mhs[0][3];
Instruksi menampilkan elemen data_mhs pada baris 0 kolom 3.
3. cin>>data_mhs[0][3];
Memberi nilai untuk elemen data_mhs pada baris 0 kolom 3.
Contoh program :
#include<iostream>
using namespace std;
int main()
{
int data_mhs[3][5];
data_mhs[0][0]=150; //jurusan TI 2015
data_mhs[0][1]=200; //jurusan TI 2016
data_mhs[0][2]=180; //jurusan TI 2017
data_mhs[0][3]=210; //jurusan TI 2018
data_mhs[0][4]=190; //jurusan TI 2019
data_mhs[1][0]=160; //jurusan MI 2015
data_mhs[1][1]=180; //jurusan MI 2016
data_mhs[1][2]=190; //jurusan MI 2017
data_mhs[1][3]=220; //jurusan MI 2018
data_mhs[1][4]=200; //jurusan MI 2019
data_mhs[2][0]=100; //jurusan SI 2015
data_mhs[2][1]=120; //jurusan SI 2016
data_mhs[2][2]=130; //jurusan SI 2017
data_mhs[2][3]=150; //jurusan SI 2018
data_mhs[2][4]=150; //jurusan SI 2019
cout<<"Data mahasiswa baru"<<endl;
while(1){
cout<<"Pilihan jurusan :\n"
<<"0. TI\n"
<<"1. MI\n"
<<"2. SI\n"
<<"Pilih : ";cin>>jurusan;
if(jurusan<3 && jurusan>=0)
break;
}
tahun -= 2015; //konversi ke 0,1,2, 3 atau 4
if(tahun<5 && tahun>=0)
break;
}
cout<<"Jumlah mahasiswa baru : "
<<data_mhs[jurusan][tahun]<<endl;
}
using namespace std;
int main()
{
int data_mhs[3][5];
int tahun,jurusan;
data_mhs[0][1]=200; //jurusan TI 2016
data_mhs[0][2]=180; //jurusan TI 2017
data_mhs[0][3]=210; //jurusan TI 2018
data_mhs[0][4]=190; //jurusan TI 2019
data_mhs[1][0]=160; //jurusan MI 2015
data_mhs[1][1]=180; //jurusan MI 2016
data_mhs[1][2]=190; //jurusan MI 2017
data_mhs[1][3]=220; //jurusan MI 2018
data_mhs[1][4]=200; //jurusan MI 2019
data_mhs[2][0]=100; //jurusan SI 2015
data_mhs[2][1]=120; //jurusan SI 2016
data_mhs[2][2]=130; //jurusan SI 2017
data_mhs[2][3]=150; //jurusan SI 2018
data_mhs[2][4]=150; //jurusan SI 2019
cout<<"Data mahasiswa baru"<<endl;
while(1){
cout<<"Pilihan jurusan :\n"
<<"0. TI\n"
<<"1. MI\n"
<<"2. SI\n"
<<"Pilih : ";cin>>jurusan;
if(jurusan<3 && jurusan>=0)
break;
}
while(1){
cout<<"Pilihan tahun 2015-2019 : ";cin>>tahun;tahun -= 2015; //konversi ke 0,1,2, 3 atau 4
if(tahun<5 && tahun>=0)
break;
}
cout<<"Jumlah mahasiswa baru : "
<<data_mhs[jurusan][tahun]<<endl;
}
Hasil eksekusi program :
Mula-mula program mengisi data ke array mhs_data. Kemudian program meminta memasukan pilihan jurusan dan tahun. Kedua masukan tersebut dicek tidak akan berada diluar jangkauan yang telah ditentukan oleh indeks-indeks pada array mhs_data.
Inisialisasi Array 2 Dimensi
Inisialisasi pada array 2 dimensi pada contoh diatas dapat ditulis seperti :
int data_mhs[3][5]={
{150,200,180,210,190},
{160,180,190,220,200},
{100,120,130,150,150}
};
Array 3 Dimensi
Bentuk umum pendefinisian array 3 dimensi :
tipe nama_array[indeks_x][indeks_y][indeks_z];
sebagai contoh :
int angka[2][2][3];
sama seperti array 1 dimensi dan 2 dimensi, array 3 dimensi juga bisa diinisialisasi. Contoh :
int huruf[2][2][3] = {
{ {1,2,3},{4,5,6} },
{ {6,7,9},{10,11,12}}
};
Gambar 4 array 3 dimensi
keterangan :
- int huruf[pertama][kedua][ketiga];Contoh program :
#include<iostream>
using namespace std;
int main()
{ int angka[2][2][3] = {
{ {1,2,3},{4,5,6} },
{ {7,8,9},{10,11,12}}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
}cout<<endl;
}cout<<endl;
}
}
using namespace std;
int main()
{ int angka[2][2][3] = {
{ {1,2,3},{4,5,6} },
{ {7,8,9},{10,11,12}}
};
{
for(int j=0;j<2;j++)
{
for(int k=0;k<3;k++)
{
cout<<angka[i][j][k]<<" ";}cout<<endl;
}cout<<endl;
}
}
Hasil eksekusi program :
Array sebagai Argumen Fungsi
Array juga dapat berkedudukan sebagai parameter di dalam fungsi. Misalnya pada contoh program menghitung rata-rata dengan fungsi dan array berikut :
#include<iostream>
int main()
{
int jumlah;
cout<<"Masukan jumlah : ";cin>>jumlah;
for(int i=0;i<jumlah;i++)
{
cout<<"Nilai ke-"<<i+1<<" = ";cin>>data[i];
}
cout<<"Rata-rata = "<<fungsi_array(data,jumlah);
}
float fungsi_array(float data[],int jumlah)
{
float rata;
for(int i=0;i<jumlah;i++)
{
rata += data[i];
}
return rata/jumlah;
}
using namespace std;
float fungsi_array(float data[],int jumlah);
{
int jumlah;
cout<<"Masukan jumlah : ";cin>>jumlah;
float data[jumlah];
{
cout<<"Nilai ke-"<<i+1<<" = ";cin>>data[i];
}
cout<<"Rata-rata = "<<fungsi_array(data,jumlah);
}
float fungsi_array(float data[],int jumlah)
{
float rata;
for(int i=0;i<jumlah;i++)
{
rata += data[i];
}
return rata/jumlah;
}
Hasil eksekusi :
Gambar 5 output menghitung rata-rata dengan fungsi dan array
Keterangan :
- float fungsi_array(float data[],int jumlah);
pendefinisian fungsi
- cout<<"Rata-rata = "<<fungsi_array(data,jumlah);
memanggil fungsi_array
- float fungsi_array(float data[],int jumlah)
{ ... }
mengembalikan nilai return ke fungsi main yang memanggil fungsi tersebut.
Contoh diatas menggunakan array 1 dimensi, untuk array 2 dimensi berikut contohnya.
Contoh program :
#include<iostream>
using namespace std;
const int baris=10;
void matriks(int data[][kolom],int &bariss,int &kolomm);
int main()
{
int jbaris, jkolom ;
int data[baris][kolom];
matriks(data,jbaris,jkolom);
for(int i=0;i<jbaris;i++)
{
for(int j=0;j<jkolom;j++)
{
cout<<data[i][j]<<" ";
}cout<<endl;
}
void matriks(int data[][kolom],int &bariss, int &kolomm)
{
cout<<"Masukan baris : ";cin>>bariss;
cout<<"Masukan kolom : ";cin>>kolomm;
for(int i=0;i<bariss;i++)
{
for(int j=0;j<kolomm;j++){
cout<<"Elemen "<<i<<", "<<j <<" = ";cin>>data[i][j];
}
}
}
using namespace std;
const int baris=10;
const int kolom=10;
int main()
{
int jbaris, jkolom ;
int data[baris][kolom];
matriks(data,jbaris,jkolom);
for(int i=0;i<jbaris;i++)
{
for(int j=0;j<jkolom;j++)
{
cout<<data[i][j]<<" ";
}cout<<endl;
}
}
{
cout<<"Masukan baris : ";cin>>bariss;
cout<<"Masukan kolom : ";cin>>kolomm;
for(int i=0;i<bariss;i++)
{
for(int j=0;j<kolomm;j++){
cout<<"Elemen "<<i<<", "<<j <<" = ";cin>>data[i][j];
}
}
}
Comments
Post a Comment