Konsep Matriks

Kisi bilangan sebagai wadah data dan transformasi.

Daftar isi

Matriks adalah susunan bilangan dalam kisi berbaris dan berkolom yang lazim digunakan sebagai wadah data pada kode numerik. Topik ini membahas notasi matriks, cara membaca setiap elemennya, serta perannya sebagai wadah tabel data dan citra digital. Setiap pernyataan diverifikasi menggunakan NumPy agar istilah yang diperkenalkan langsung terhubung dengan kode. Setelah topik ini selesai, ukuran matriks dapat dinyatakan, elemen tertentu dapat diambil, dan matriks dapat dikenali pada struktur data yang ditemui sehari-hari.

Notasi baris dan kolom#

Matriks dinyatakan sebagai kisi bilangan berukuran m×nm \times n, yakni mm baris dan nn kolom, dan dilambangkan dengan huruf kapital seperti AA. Setiap bilangan di dalamnya disebut elemen (element) dan ditulis aija_{ij}, yaitu elemen pada baris ke-ii dan kolom ke-jj. Matriks berukuran 2×32 \times 3 berisi enam elemen yang tersusun dalam dua baris dan tiga kolom sebagaimana contoh berikut.

A=(271405) A = \begin{pmatrix} 2 & \quad 7 & \quad 1 \\ 4 & \quad 0 & \quad 5 \end{pmatrix}

Elemen a11a_{11} bernilai 2 karena berada pada baris pertama dan kolom pertama, sedangkan a23a_{23} bernilai 5 karena berada pada baris kedua dan kolom ketiga. Penomoran pada notasi matematika dimulai dari 1, sedangkan pengambilan elemen pada NumPy dimulai dari 0. Perbedaan permulaan hitungan ini sering menjadi sumber kesalahan saat rumus dipindahkan ke kode, sehingga setiap indeks perlu dibaca dengan teliti. Diagram berikut menegaskan letak baris dan kolom pada matriks AA beserta pembacaan satu elemennya.

kolom ke-1kolom ke-2kolom ke-3baris ke-1baris ke-2271405a₂₁ = 4 dibaca dari baris ke-2, kolom ke-1
Letak baris dan kolom pada matriks berukuran 2 × 3

Ukuran matriks selalu disebut dengan urutan baris lebih dahulu, sehingga matriks 3×23 \times 2 berbeda dari matriks 2×32 \times 3 meskipun banyak elemennya sama. Kasus khusus yang penting adalah matriks dengan satu baris atau satu kolom. Matriks satu kolom berperan sebagai vektor, objek yang telah dibahas pada modul Vektor, sedangkan matriks satu baris lazim disebut vektor baris. Perbedaan orientasi ini berpengaruh pada aturan perkalian matriks karena ukuran keduanya tidak sama.

Matriks sebagai wadah data tabular#

Wadah data merupakan peran matriks yang paling mudah dikenali. Satu tabel dua dimensi langsung menjadi matriks, yaitu baris mewakili satu objek dan kolom mewakili satu jenis nilai. Sebagai contoh, jadwal piket kelas memuat empat hari dan tiga jenis tugas, sehingga banyaknya petugas pada setiap kombinasi hari dan tugas dapat ditulis sebagai matriks berukuran 4×34 \times 3. Pemetaan tabel ke matriks bekerja dua arah karena keduanya menggunakan pasangan posisi yang sama, yaitu nomor baris dan nomor kolom. Seluruh informasi jadwal pun tersimpan dalam satu variabel tanpa kehilangan keterkaitan antarselnya.

python matriks_piket.py
import numpy as np

# jadwal piket kelas: baris = hari (Senin-Kamis), kolom = tugas (sapu, pel, tanaman)
jadwal = np.array([
    [1, 0, 2],
    [0, 3, 1],
    [2, 1, 0],
    [1, 1, 1],
])

print(f"Ukuran matriks : {jadwal.shape}")
print(f"Petugas menyapu hari Rabu : {jadwal[2, 0]}")
print(f"Baris hari Selasa : {jadwal[1]}")
print(f"Kolom menyiram tanaman : {jadwal[:, 2]}")
print(f"Total petugas sepanjang pekan : {jadwal.sum()}")
text Keluaran
Ukuran matriks : (4, 3)
Petugas menyapu hari Rabu : 2
Baris hari Selasa : [0 3 1]
Kolom menyiram tanaman : [2 1 0 1]
Total petugas sepanjang pekan : 13

Atribut shape mengembalikan pasangan (4, 3) yang menyatakan empat baris dan tiga kolom. Pengambilan elemen menggunakan dua indeks dalam satu tanda kurung siku, sehingga jadwal[2, 0] mengambil baris indeks 2 dan kolom indeks 0, yakni petugas menyapu pada hari Rabu. Notasi jadwal[1] mengambil satu baris utuh, sedangkan jadwal[:, 2] mengambil satu kolom utuh menggunakan tanda titik dua yang berarti seluruh indeks. Metode sum() menjumlahkan seluruh elemen dan menghasilkan total 13 petugas.

Citra digital sebagai matriks#

Citra grayscale dinyatakan sebagai matriks berukuran tinggi kali lebar dengan setiap elemen berupa satu piksel (pixel), sehingga citra digital menyediakan contoh kedua yang memperlihatkan matriks dari sisi berbeda. Istilah grayscale merujuk pada citra yang hanya menyimpan tingkat keabuan, dengan nilai piksel 8 bit yang berkisar dari 0 yang berarti hitam pekat sampai 255 yang berarti putih terang. Citra kecil berukuran 4×44 \times 4 piksel berikut digunakan untuk memeriksa hubungan tersebut dalam kode.

python citra_abu.py
import numpy as np

# citra grayscale 4x4: nilai 0 (gelap) sampai 255 (terang)
citra = np.array([
    [  0,  60, 120, 180],
    [ 60, 120, 180, 240],
    [120, 180, 240, 200],
    [180, 240, 200, 100],
])

print(f"Ukuran citra : {citra.shape}")
print(f"Piksel paling gelap  : {citra.min()}")
print(f"Piksel paling terang : {citra.max()}")
print(f"Kecerahan rata-rata  : {citra.mean():.2f}")
text Keluaran
Ukuran citra : (4, 4)
Piksel paling gelap  : 0
Piksel paling terang : 240
Kecerahan rata-rata  : 151.25

Keluaran memperlihatkan bahwa operasi statistik diterapkan langsung pada matriks tanpa perulangan manual. Metode min() dan max() mencari piksel paling gelap dan paling terang, sedangkan mean() menghitung kecerahan rata-rata citra. Pola ini berlaku sama pada citra nyata yang berukuran jutaan piksel karena NumPy menjalankan operasinya pada seluruh elemen sekaligus. Hasil rata-rata 151.25 juga mudah diperiksa ulang dengan tangan, yaitu menjumlahkan keenam belas nilai lalu membaginya dengan 16.

Di mana hal ini ditemui dalam kode#

Struktur data berbentuk kisi muncul pada hampir setiap bagian kode numerik, dan sebagian besar pustaka memperlakukannya sebagai matriks tanpa selalu menyebut istilahnya. Mengenali bentuk matriks pada struktur tersebut mempermudah pembacaan dokumentasi karena ukuran dan urutan dimensinya selalu dijelaskan lebih dahulu. Daftar berikut memetakan contoh yang paling sering ditemui.

  • Dataset machine learning disimpan sebagai matriks dengan satu baris per sampel dan satu kolom per fitur (feature), sehingga nilai ujian 1000 pelajar pada lima mata pelajaran menjadi matriks 1000×51000 \times 5.
  • Citra grayscale dinyatakan sebagai matriks tinggi kali lebar, sedangkan citra berwarna menggunakan tiga matriks seukuran untuk kanal merah, hijau, dan biru.
  • Sekelompok citra yang diproses bersama menambah dimensi berupa batch, misalnya 32 citra berukuran 28×2828 \times 28 tersusun menjadi 32×28×2832 \times 28 \times 28.
  • Bobot setiap lapisan neural network disimpan sebagai matriks yang menghubungkan banyak masukan ke banyak keluaran sekaligus.
  • Berkas CSV yang dibaca pustaka data langsung menjadi struktur mirip matriks dengan baris dan kolom bernama.

Kelima contoh menggunakan keterangan ukuran yang sama, yaitu baris disebut lebih dahulu dan kolom kemudian. Kebiasaan membaca m×nm \times n dengan urutan yang benar terus terpakai ketika bentuk data makin banyak dimensinya, sebab prinsip penomorannya tetap sama. Dokumentasi pustaka pun menggunakan notasi itu ketika menjelaskan bentuk masukan yang diharapkan.

Ringkasan#

  • Matriks berukuran m×nm \times n memuat mm baris dan nn kolom, dan elemennya dilambangkan aija_{ij} dengan baris disebut lebih dahulu.
  • NumPy menyimpan matriks sebagai array dua dimensi, atribut shape menyatakan ukurannya, dan pengindeksannya dimulai dari 0.
  • Tabel data dan citra grayscale sama-sama dinyatakan sebagai matriks, sehingga operasi statistiknya dijalankan pada seluruh elemen sekaligus.
  • Dataset baris-sampel, kumpulan citra dalam batch, dan bobot lapisan neural network adalah wujud matriks yang paling sering ditemui dalam kode.

Referensi#