Salah satu struktur
data larik yang juga banyak digunakan dalam berbagai aplikasi adalah matriks
atau larik 2D (dua dimensi), satu untuk menunjukkan baris dan yang lainnya
menunjukkan kolom. Susunan angka berikut menunjukkan matriks 4 x 5 (4 baris dan
5 kolom).
10 12 17 9 16
8 15 10 11 25
13 8 34 23 7
45 27 6 5 17
Untuk mengisi suatu
matriks berdimensi 4x5 dilakukan baris demi
baris, mulai dari baris 1 dengan mengisi kolom 1 sampai dengan kolom 5,
kemudian pindah ke baris 2 dan mengisi kolom 1 sampai dengan kolom 5
Secara umum array dua dimensi dideklarasikan dengan aturan:
Type namaarray = array [I,J] of tipe –
basis;
dimana I dan J menyatakan jangkauuan
array, mulai dari indeks terkecil sampai terbesar. Sama dengan pada array satu
dimensi, I dan J bertipe tertentu yang disebut tipe indeks (index type). Tipe
indeks harus tipe yang mempunyai keterurutan (terdefinisi suksesor dan
predesesornya), atau ordinal. I menyatakan jangkauan baris array dan J
menyatakan jangkauan kolomnya .
Program ini merupakan program dengan type array 2
dimensi yang berfungsi untuk mengalikan 2
matrik dengan syarat kolom matiks pertama dengan baris matriks kedua
harus bernilai sama. Pertama-tama progam ini akan memintakan inputan nilai a, b
dan c. Nilai a untuk baris matriks A dan b adalah nilai kolom matriks pertama
dan nilai baris matriks kedua dan c adalah nilai kolom matriks kedua.
Selanjutnya kan dimintakan inputan matriks A dan B sesuai niali a,b dan c.
Setelah
meinputkan data program akan memproses data tersebut dengan cara mengalikan
matriks pertama dan matriks kedua. Output yang diharapkan adalah matriks baru
dengan ukuran a x c. Tipe data yang digunakan adalah integer.
Source Code:
uses
wincrt;
var
matrikA
: array[1..10, 1..10] of integer;
matrikB
: array[1..10, 1..10] of integer;
matrikC
: array[1..10, 1..10] of integer;
a,b,c,i,j,k:
integer;
begin
writeln(' >>>Program Perkalian Matrik axb dan
bxc<<< ');
writeln;
writeln('
a : b:
c: ');
gotoxy(5,3);read(a);gotoxy(10,3);read(b);gotoxy(15,3);read(c);
writeln;
begin
writeln('
Matriks A :');
for
i:= 1 to a do
for
j:= 1 to b do
begin
gotoxy
(j*4, i+6);
readln(matrikA[i,j]);
end;
end;
writeln;
begin
writeln('
Matriks B :');
for
j:= 1 to b do
for
k:= 1 to c do
begin
gotoxy
(k*4, j+11);
readln(matrikB[j,k]);
end;
end;
writeln;
begin
for
i:= 1 to a do
begin
for k:=1 to c do
begin
matrikC[i,k]:=0;
for j:=1 to b do
begin
MatrikC[i,k]:=matrikC[i,k] +
matrikA[i,j] * matrikB[j,k];
end;
end;
end;
end;
begin
writeln('
Hasil Perkalian Matrik A ',a,'x',b,' dan Matrik B ',b,'x',c,' adalah: ');
for
i:=1 to a do
begin
for k:=1 to c do
begin
begin
write(matrikC[i,k]:4);
end;
writeln;
end;
end;
readln;
end.
Tampilan Output :
Makasih,kaka,bantuannya dalam bahan laporan :)
BalasHapus