
program Menu_pilihan_MATRIKS;
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 (’program penjumlahan matriks’);
 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_pengurangan_matriks;
begin
writeln (’program pengurangan matriks’);
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_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_y do
     Mat_C[x,y]:=Mat_C[x,y] + Mat_A[z,y]*Mat_B[x,z];
     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
     write(Mat_C[x,y]:5);
     end;
 write;readln;
 end;
 end;
procedure output_transpost_matriks;
begin
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 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(blue);
clrscr;
write(’***********************************************’);writeln;
write(’*****PROGRAM MENU PROSEDUR MATRIKS****’);writeln;
write(’************* AIRINDA EKTRIA *****************’);writeln;
write(’**************  NIM : 070793  *****************’);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. Keluar                                =’);writeln;
write(’===============================================’);writeln;
pilih:=0;
while(pilih<1)>5) do
begin
write(’ Silahkan pilih nomor   :  ‘);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.