MODUL 7 ARRAY DIMENSI DUA


 Peserta didik mampu mengenali larik dimensi dua, mampu mendeklarasikan dan menggunakan larik dimensi dua dalam menyelesaikan masalah dalam pemrograman

A. Pengertian Larik Dimensi Dua 

Larik dimensi dua dapat dipahami sebagai larik dengan elemen baris dan kolom. Pemanfaatan array tidak hanya dapat digunakan untuk menyimpan data dalam bentuk satu dimensi tetapi juga dapat digunakan untuk menyimpan data dalam bentuk 2 dimensi. Misal ada data dalam bentuk representasi sebagai berikut: 

Tahun/Prodi 2012 2013 2014 2015 2016
Informatika 60 65 78 100 98
Kimia 100 97 102 76 94
Geologi 120 130 132 142 140
Mesin 200 180 210 187 176

Pada table di atas, maka index baris digunakan untuk menyimpan data prodi dan index kolom digunakan untuk menyimpan data tahun. Misal a[3][2] artinya jumlah peserta didik pada prodi geologi pada tahun 2013. Atau dalam merepresentasikan matrix berorde mxn sehingga index baris menggunakan m dan index kolom menggunakan n. Pada pengelolaan larik berdimensi dua digunakan dua index, yaitu index baris dan index kolom. 
Cara mendeklarasikan larik dimensi dua adalah sebagai berikut: 
Tipe data nama_variabel[jumlah baris][jumlah kolom] 
Contoh: 
int mhs[5][4]; 
float matrix[10][10];

Pada deklarasi di atas maka variable mhs mempunyai dimensi dua dengan maksimum baris 5 dan maksimum kolom 4. Sedangkan variable matrix memiliki maksimum orde baris = 10 dan kolom=10

B. Cara memberikan nilai pada larik Dimensi Dua dan mencetaknya 

Seperti halnya pada larik berdimensi satu, maka pengisian atau pencetakan data pada larik dimensi dua juga menggunakan loop. Akan tetapi karena index ada dua, yaitu baris dan kolom maka loop yang digunakan juga harus berupa loop bersarang (nested loop). Struktur penulisan array dengan menggunakan perulangan adalah :

    Tipe data nama_array[jumlah array]
//index untuk baris
    For (index awal;index akhir;increment index)
    {
//index untuk kolom nested di dalam index baris
    For (index awal;index akhir;increment index)
    {
        pengisian larik
        Manipulasi larik
        Pencetakan larik
    }

C.Latihan 

Latihan 1. 

#include <iostream>
using namespace std;

int main() {
    int mat[3][3]; // maksimal 3x3
    int m, n;

    cout << "Masukkan jumlah baris matriks (max 3): ";
    cin >> m;
    cout << "Masukkan jumlah kolom matriks (max 3): ";
    cin >> n;

    // Validasi
    if (m > 3 || n > 3 || m < 1 || n < 1) {
        cout << "Ukuran melebihi batas (1-3)" << endl;
        return 1;
    }

    // Input elemen matriks
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << "Masukkan data matriks ke [" << i << "][" << j << "] = ";
            cin >> mat[i][j];
        }
    }

    // Cetak hasil matriks
    cout << "\nHasil matriks adalah:\n";
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << mat[i][j] << "\t";
        }
        cout << endl;
    }

    return 0;
}
Masukkan jumlah baris matriks (max 3): 2
Masukkan jumlah kolom matriks (max 3): 3
Masukkan data matriks ke [0][0] = 1
Masukkan data matriks ke [0][1] = 2
Masukkan data matriks ke [0][2] = 3
Masukkan data matriks ke [1][0] = 4
Masukkan data matriks ke [1][1] = 5
Masukkan data matriks ke [1][2] = 6

Hasil matriks adalah:
1 2 3
4 5 6


Latihan 2. 

Jika ingin membuat validasi terhadap masukan orde untuk m dan m dapat ditambahkan sebagai berikut:

#include <iostream>
using namespace std;

int main() {
    int mat[3][3]; // deklarasi array maksimal 3x3
    int m, n;

    cout << "Masukkan baris matriks (maksimal 3): ";
    cin >> m;

    cout << "Masukkan kolom matriks (maksimal 3): ";
    cin >> n;

    // Validasi: jika matriks bukan ordo 3x3
    if (m != 3 || n != 3) {
        cout << "Orde tidak diizinkan. Hanya ordo 3x3 yang diperbolehkan." << endl;
    } else {
        // Input elemen matriks
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                cout << "Masukkan data matriks ke [" << i << "][" << j << "] = ";
                cin >> mat[i][j];
            }
        }

        // Menampilkan hasil matriks
        cout << "\nHasil matriks adalah:\n";
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                cout << mat[i][j] << "\t";
            }
            cout << endl;
        }
    }

    return 0;
}

D. Tugas 

  1. Program diatas silahkan dilanjutkan dengan mendeklarasikan 3 buah matrix dan menghitung penjumlahan dan pengurangan matriks dan tampilkan hasilnya di layar. Lakukan validasi terhadap orde seperti pada contoh tetapi ditambahkan validasi bahwa m dan n tidak boleh melebihi dimensi yang ditetapkan. 
  2. Buatlah program untuk menginputkan data peserta didik seperti pada tabel di atas

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak