Pendahuluan

Memutar array dua dimensi, atau matriks, adalah masalah umum dalam pemrograman yang dapat muncul di berbagai aplikasi, terutama dalam grafik komputer dan manipulasi data. Dalam posting blog ini, kita akan membahas proses memutar matriks 4x4 sebesar 90 derajat searah jarum jam.

Memahami Masalah

Bayangkan Anda memiliki array dua dimensi yang terstruktur seperti ini:

[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]

Setelah memutar matriks ini 90 derajat searah jarum jam, itu harus berubah menjadi:

[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]

Dalam istilah praktis, setiap elemen dalam array asli berpindah ke posisi baru berdasarkan rotasi. Tetapi bagaimana kita menerapkannya dalam bahasa pemrograman seperti C#? Mari kita pecahkan ini langkah demi langkah.

Solusi

Langkah 1: Inisialisasi Matriks

Pertama, kita perlu menginisialisasi matriks dalam program kita. Berikut adalah cara melakukannya:

int[,] array = new int[4,4] {
    { 1,2,3,4 },
    { 5,6,7,8 },
    { 9,0,1,2 },
    { 3,4,5,6 }
};

Langkah 2: Buat Fungsi untuk Memutar Matriks

Selanjutnya, kita akan membuat suatu fungsi yang disebut RotateMatrix yang melakukan rotasi yang diperlukan. Fungsi ini akan mengambil matriks asli dan ukurannya sebagai parameter dan mengembalikan matriks yang telah diputar.

Berikut adalah implementasi dari fungsi RotateMatrix:

static int[,] RotateMatrix(int[,] matrix, int n) {
    int[,] ret = new int[n, n];

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            ret[i, j] = matrix[n - j - 1, i];
        }
    }

    return ret;
}

Langkah 3: Penjelasan Fungsi

  • Deklarasi Matriks: Kita mendeklarasikan matriks baru ret dengan ukuran yang sama dengan input.
  • Loop Bersarang: Kita menggunakan loop bersarang untuk traverse melalui setiap elemen matriks.
  • Logika Rotasi: Untuk setiap elemen pada posisi (i, j), kita memetakan ke posisi baru (j, n - i - 1). Rumus ini membantu dalam memutar elemen dengan benar sebesar 90 derajat searah jarum jam.

Langkah 4: Menguji Fungsi

Anda dapat menguji fungsi dengan memanggilnya dan mencetak matriks yang telah diputar:

int[,] rotated = RotateMatrix(array, 4);

Pastikan Anda juga menerapkan metode untuk mencetak matriks sebagai verifikasi.

Kesimpulan

Memutar array dua dimensi adalah tugas yang sederhana setelah Anda memahami pemetaan indeks. Sementara pendekatan saat ini berjalan dalam kompleksitas waktu O(n^2), mengoptimalkan algoritma untuk matriks yang lebih besar (seperti 10000x10000) adalah pembahasan yang terus berlanjut dalam algoritma dan struktur data.

Sekarang Anda dapat dengan percaya diri memutar array dua dimensi apa pun di C#. Selamat coding!