Menu
CoddyTech

Operasi Matriks Umum

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 6 dari 66.

Matriks umum digunakan dalam matematika dan ilmu komputer. Mari kita pelajari beberapa operasi umum pada array 2D.

Jumlahkan dua matriks:

int[][] AddMatrices(int[][] a, int[][] b)
{
    int rows = a.Length;
    int[][] result = new int[rows][];
    
    for (int i = 0; i < rows; i++)
    {
        result[i] = new int[a[i].Length];
        for (int j = 0; j < a[i].Length; j++)
        {
            result[i][j] = a[i][j] + b[i][j];
        }
    }
    return result;
}

Transpose matriks (tukar baris dan kolom):

int[][] Transpose(int[][] matrix)
{
    int rows = matrix.Length;
    int cols = matrix[0].Length;
    
    int[][] result = new int[cols][];
    for (int i = 0; i < cols; i++)
    {
        result[i] = new int[rows];
        for (int j = 0; j < rows; j++)
        {
            result[i][j] = matrix[j][i];
        }
    }
    return result;
}

Hitung jumlah setiap baris:

int[] RowSums(int[][] matrix)
{
    int rows = matrix.Length;
    int[] sums = new int[rows];
    
    for (int i = 0; i < rows; i++)
    {
        int sum = 0;
        for (int j = 0; j < matrix[i].Length; j++)
        {
            sum += matrix[i][j];
        }
        sums[i] = sum;
    }
    return sums;
}

Kalikan dua matriks:

Dalam perkalian matriks, setiap elemen result[i][j] dihitung dengan mengambil baris i dari matriks pertama dan kolom j dari matriks kedua, mengalikan elemen-elemen yang bersesuaian, lalu menjumlahkan hasil perkaliannya. Secara formal: result[i][j] = sum of matrix1[i][k] * matrix2[k][j] untuk semua nilai k yang valid.
Agar ini berfungsi, jumlah kolom dalam matrix1 harus sama dengan jumlah baris dalam matrix2. Matriks hasil memiliki dimensi [matrix1.rows × matrix2.cols].

int[][] MultiplyMatrices(int[][] a, int[][] b)
{
    int rows = a.Length;
    int cols = b[0].Length;
    int inner = b.Length;
    
    int[][] result = new int[rows][];
    for (int i = 0; i < rows; i++)
    {
        result[i] = new int[cols];
        for (int j = 0; j < cols; j++)
        {
            int sum = 0;
            for (int k = 0; k < inner; k++)
            {
                sum += a[i][k] * b[k][j];
            }
            result[i][j] = sum;
        }
    }
    return result;
}
challenge icon

Tantangan

Sulit

Buat method bernama multiplyMatrices yang:

  1. Menerima dua matriks (array bergerigi 2D) sebagai parameter: matrix1 dan matrix2
  2. Mengalikannya sesuai aturan perkalian matriks
  3. Mengembalikan matriks hasilnya

Agar perkalian matriks valid:

  • Jumlah kolom dalam matrix1 harus sama dengan jumlah baris dalam matrix2
  • Dimensi hasilnya adalah: [matrix1.rows × matrix2.columns]

Cara kerja perkalian matriks:
Setiap elemen pada posisi [i][j] dalam hasil dihitung dengan mengambil baris i dari matrix1 dan kolom j dari matrix2, mengalikan elemen-elemen yang bersesuaian, lalu menjumlahkan semua hasil perkalian tersebut:

result[i][j] = matrix1[i][0] * matrix2[0][j] + matrix1[i][1] * matrix2[1][j] + ...

Dengan kata lain: result[i][j] = sum of (matrix1[i][k] * matrix2[k][j]) untuk setiap k.

Misalnya, jika matrix1 adalah:

[1, 2]
[3, 4]

Dan matrix2 adalah:

[5, 6]
[7, 8]

Maka result[0][0] = 1*5 + 2*7 = 19, result[0][1] = 1*6 + 2*8 = 22, dan seterusnya. Hasilnya seharusnya:

[19, 22]
[43, 50]

Jika matriks tidak dapat dikalikan, kembalikan null.

Coba sendiri

public class MultiplyMatrices
{
    // Implementasikan method MultiplyMatrices
    public static int[][] multiplyMatrices(int[][] matrix1, int[][] matrix2)
    {
        // Tulis kodemu di sini
        
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C# online