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 |
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 3x3int m, n;cout << "Masukkan jumlah baris matriks (max 3): ";cin >> m;cout << "Masukkan jumlah kolom matriks (max 3): ";cin >> n;// Validasiif (m > 3 || n > 3 || m < 1 || n < 1) {cout << "Ukuran melebihi batas (1-3)" << endl;return 1;}// Input elemen matriksfor (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 matrikscout << "\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;}
Latihan 2.
#include <iostream>using namespace std;int main() {int mat[3][3]; // deklarasi array maksimal 3x3int m, n;cout << "Masukkan baris matriks (maksimal 3): ";cin >> m;cout << "Masukkan kolom matriks (maksimal 3): ";cin >> n;// Validasi: jika matriks bukan ordo 3x3if (m != 3 || n != 3) {cout << "Orde tidak diizinkan. Hanya ordo 3x3 yang diperbolehkan." << endl;} else {// Input elemen matriksfor (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 matrikscout << "\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
- 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.
- Buatlah program untuk menginputkan data peserta didik seperti pada tabel di atas