PROGRAM Operasi Matriks
FUNCTION main
CALL header()
REPEAT
DISPLAY menu
INPUT choice
IF choice == 1 OR choice == 2 THEN
CALL inputmatrix()
ELSE IF choice == 3 THEN
CALL inputmatriksTranspose()
ELSE IF choice == 4 THEN
DISPLAY "Program selesai. Terima kasih!"
EXIT
ELSE
DISPLAY "Pilihan salah. Silakan coba lagi."
CLEAR screen
END IF
UNTIL FALSE
END FUNCTION
FUNCTION input
REPEAT
INPUT number
IF valid number THEN
RETURN number
ELSE
DISPLAY "Input invalid! Masukkan angka yang benar."
END IF
UNTIL valid input
END FUNCTION
FUNCTION reset
DISPLAY "Kembali mencari? [Y/N]: "
INPUT parameter
IF parameter == 'Y' OR 'y' THEN
CLEAR screen
RETURN
ELSE IF parameter == 'N' OR 'n' THEN
RETURN
ELSE
DISPLAY "Input tidak valid!"
CALL reset()
END IF
END FUNCTION
FUNCTION inputmatrix
CLEAR screen
IF choice == 1 OR choice == 2 THEN
INPUT row, col, row2, col2
IF invalid matrix dimensions THEN
DISPLAY "Invalid baris dan kolom!"
CLEAR screen
CALL inputmatrix()
ELSE
FOR i FROM 0 TO row
FOR j FROM 0 TO col
INPUT matriks A[i][j]
END FOR
END FOR
FOR i FROM 0 TO row2
FOR j FROM 0 TO col2
INPUT matriks B[i][j]
END FOR
END FOR
IF choice == 2 THEN
CALL penjumlahan()
ELSE
CALL perkalian()
END IF
END IF
END IF
END FUNCTION
FUNCTION perkalian
FOR i FROM 0 TO row
FOR j FROM 0 TO col2
sum = 0
FOR h FROM 0 TO col
sum += A[i][h] * B[h][j]
END FOR
C[i][j] = sum
END FOR
END FOR
DISPLAY hasil perkalian matriks
CALL reset()
END FUNCTION
FUNCTION penjumlahan
FOR i FROM 0 TO row
FOR j FROM 0 TO col
C[i][j] = A[i][j] + B[i][j]
END FOR
END FOR
DISPLAY hasil penjumlahan matriks
CALL reset()
END FUNCTION
FUNCTION inputmatriksTranspose
CLEAR screen
INPUT row, col
FOR i FROM 0 TO row
FOR j FROM 0 TO col
INPUT matriks A[i][j]
END FOR
END FOR
FOR i FROM 0 TO col
FOR j FROM 0 TO row
B[i][j] = A[j][i]
END FOR
END FOR
DISPLAY hasil transpose
CALL reset()
END FUNCTION
FUNCTION header
DISPLAY header informasi
CALL pressAnyKey()
CLEAR screen
END FUNCTION
FUNCTION pressAnyKey
DISPLAY "Press any key to continue..."
WAIT for key press
END FUNCTION