
program Menu_pilihan_MATRIKS;
begin
uses crt;
var
Mat_A,Mat_B,Mat_C:array[1..10,1..10] of integer;
ordo_x,ordo_y:integer;
x,y,z,koor_brs:integer;
L,K,s,a,t,p:real;
pilih:byte;
procedure input_penjumlahan_matriks;
begin
writeln ('ini adalah program menghitung penjumlahan matriks');
writeln('Tentukan Ordo Matriks[x,y]');
readln (ordo_x,ordo_y);
writeln('input Matriks (A):');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_A[x,y]);
end;
end;
writeln('input Matriks (B): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_B[x,y]);
end;
end;
end;
procedure input_pengurangan_matriks;
begin
writeln ('ini adalah program menghitung pengurangan matriks');
writeln('Tentukan Ordo Matriks[x,y]');
readln (ordo_x,ordo_y);
writeln('input Matriks (A): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_A[x,y]);
end;
end;
writeln('input Matriks (B): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_B[x,y]);
end;
end;
end;
procedure input_perkalian_matriks;
begin
writeln('Tentukan Ordo Matriks');
readln (ordo_x,ordo_y);
writeln('input Matriks (A): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_A[x,y]);
end;
end;
writeln('input Matriks (B): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_B[x,y]);
end;
end;
end;
procedure input_transpost_matriks;
begin
writeln('Tentukan Ordo Matriks');
readln (ordo_x,ordo_y);
writeln('input Matriks (A): ');
for y:=1 to ordo_y do
begin
koor_brs := wherey;
for x:=1 to ordo_x do
begin
gotoxy (x*5,koor_brs);
read (Mat_A[x,y]);
end;
end;
end;
procedure rumus_penjumlahan_matriks;
begin
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:= Mat_A[x,y] + Mat_B[x,y];
end;
end;
end;
procedure rumus_pengurangan_matriks;
begin
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:= Mat_A[x,y] - Mat_B[x,y];
end;
end;
end;
procedure rumus_perkalian_matriks;
begin
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:=0;
for z:=1 to ordo_x do
begin
Mat_C[x,y]:=Mat_C[x,y] + Mat_A[z,y]*Mat_B[x,z];
end;
end;
end;
end;
procedure rumus_transpost_matriks;
begin
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:= Mat_A[y,x];
end;
end;
end;
procedure output_penjumlahan_matriks;
begin
writeln;
writeln('maka penjumlahan matriks A dan B = ');
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
write(Mat_C[x,y]:5);
end;
write;readln;
end;
end;
procedure output_pengurangan_matriks;
begin
writeln;
writeln('maka pengurangan matriks A dan B = ');
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
write(Mat_C[x,y]:5);
end;
write;readln;
end;
end;
procedure output_perkalian_matriks;
begin
writeln;
writeln('maka perkalian matriks A dan B = ');
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:=0;
for z:=1 to ordo_x do
begin
Mat_C[x,y]:=Mat_C[x,y]+(Mat_A[z,y]*Mat_B[x,z]);
end;
write(Mat_C[x,y]:5);
end;
writeln;
readln;
end;
end;
procedure output_transpost_matriks;
begin
writeln;
writeln ('hasil transpost matrik adalah : ');
for y:=1 to ordo_y do
begin
for x:=1 to ordo_x do
begin
Mat_C[x,y]:=Mat_A[y,x];
write(Mat_C[x,y]:5);
end;
writeln;readln;
end;
end;
procedure Penjumlahan_matriks;
begin
writeln;
input_penjumlahan_matriks; readln;
rumus_penjumlahan_matriks; read;
output_penjumlahan_matriks; read;
writeln('tekan ENTER untuk pilih program lain'); readln;
end;
procedure PIL1;
begin
writeln;
writeln;
input_pengurangan_matriks; readln;
rumus_pengurangan_matriks; read;
output_pengurangan_matriks; read;
writeln('tekan ENTER untuk pilih program lain'); readln;
end;
procedure PIL2;
begin
writeln;
input_perkalian_matriks; readln;
rumus_perkalian_matriks; read;
output_perkalian_matriks; readln;
writeln('tekan ENTER untuk pilih program lain'); readln;
end;
procedure PIL3;
begin
writeln;
input_transpost_matriks; readln;
rumus_transpost_matriks; read;
output_transpost_matriks;readln;
writeln('tekan ENTER untuk pilih program lain'); readln;
end;
begin
while true do
begin
textcolor(yellow);
clrscr;
write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');writeln;
write('~~~~~SELAMAT DATANG DI PROGRAM MENU MATRIKS~~~~');writeln;
write('~~~~~~~~~~~~~dian aliza pratidina~~~~~~~~~~~~~~');writeln;
write('************** NIM : 070804 *****************');writeln;
write('***********************************************');writeln;
write('=================== MENU ==================');writeln;
write('= 1. penjumlahan matriks =');writeln;
write('= 2. pengurangan matriks =');writeln;
write('= 3. perkalian matriks =');writeln;
write('= 4. transpost matriks =');writeln;
write('= 5. exit =');writeln;
write('===============================================');writeln;
pilih:=0;
while(pilih<1)>5) do
begin
write('Silahkan pilih menu : ');read(pilih);
if (pilih<1)>5) then
end;
case pilih of
1: penjumlahan_matriks;
2: PIL1;
3: PIL2;
4: PIL3;
5: exit;
end;
end;
END.