Setiap matriks persegi bisa diringkas menjadi satu angka yang bernama determinant. Satu angka ini menjawab dua pertanyaan yang muncul terus-menerus: apakah matriks punya inverse, dan seberapa besar transformasi yang dibawanya mengembangkan atau menyusutkan ruang. Fungsi np.linalg.det menghitungnya untuk matriks berukuran berapa pun.

Menghitung Determinant 2x2 #

Untuk matriks 2x2 A = [[a, b], [c, d]], determinant dihitung dengan rumus ad - bc. Matriks A = [[1, 2], [3, 4]] yang kita pakai sejak section Operasi Matriks menghasilkan 1(4) - 2(3) = -2. Fungsi np.linalg.det bekerja lewat dekomposisi LU di LAPACK, sehingga cara pemanggilan yang sama berlaku untuk matriks 100x100 tanpa usaha tambahan. Mari kita cocokkan kedua cara:

python
import numpy as np

A = np.array([[1.0, 2.0],
              [3.0, 4.0]])
manual = A[0, 0] * A[1, 1] - A[0, 1] * A[1, 0]
det_A = np.linalg.det(A)
print("manual       :", manual)
print("np.linalg.det:", det_A)
print("allclose     :", np.allclose(det_A, manual))

Output yang Dihasilkan:

text
manual       : -2.0
np.linalg.det: -2.0000000000000004
allclose     : True

Baris demi baris:

  1. Baris 5 (manual = ...): rumus ad - bc ditulis langsung dengan pengindeksan dua dimensi — A[0, 0] adalah a, A[1, 1] adalah d, dan seterusnya. Hasilnya -2.0, persis seperti hitungan tangan.
  2. Baris 6 (det_A = np.linalg.det(A)): fungsi det memfaktorisasi A secara LU lalu mengalikan elemen diagonal hasil faktorisasinya. Pada matriks kecil pun hasilnya bisa meleset di digit terakhir.
  3. Baris 9 (print(... allclose ...)): np.allclose mengonfirmasi bahwa kedua nilai setara dalam toleransi, meskipun tidak identik bit-per-bit.

Determinant Nol Berarti Matriks Singular #

Bab Inverse Matriks memperlihatkan S = [[1, 2], [2, 4]] yang inverse-nya gagal dihitung karena baris keduanya tepat 2 kali baris pertama. Determinant memberi diagnosis yang sama dari sudut lain: matriks singular punya determinant nol.

python
import numpy as np

S = np.array([[1.0, 2.0],
              [2.0, 4.0]])
det_S = np.linalg.det(S)
print("det(S) =", det_S)
print("det(S) == 0.0:", det_S == 0.0)
print("abs(det(S)) < 1e-9:", abs(det_S) < 1e-9)

Output yang Dihasilkan:

text
det(S) = 0.0
det(S) == 0.0: True
abs(det(S)) < 1e-9: True

Untuk matriks 2x2 sekecil ini, det(S) keluar sebagai 0.0 persis, sehingga == 0.0 pun bernilai True. Jangan jadikan itu kebiasaan:

Sifat Skala: det(kA) = k^n det(A) #

Mengalikan seluruh entri matriks n x n dengan bilangan k sama artinya mengalikan hasil transformasinya k kali di setiap arah, sehingga luas (atau volume) ikut berlipat k pangkat n. Sifat ini mudah diuji:

python
import numpy as np

A = np.array([[1.0, 2.0],
              [3.0, 4.0]])
k = 3
det_A = np.linalg.det(A)
det_kA = np.linalg.det(k * A)
print("det(3A)       :", det_kA)
print("3**2 * det(A) :", k**2 * det_A)
print("allclose      :", np.isclose(det_kA, k**2 * det_A))

Output yang Dihasilkan:

text
det(3A)       : -18.000000000000004
3**2 * det(A) : -18.000000000000004
allclose      : True

Dengan n = 2 dan k = 3, sifat ini memprediksi det(3A) = 9 × (-2) = -18; pada contoh ini kedua jalur perhitungan bahkan menghasilkan angka yang identik bit-per-bit. Untuk kasus umum, tetap gunakan np.isclose karena kedua jalur bisa menyisakan pembulatan yang berbeda. Sifat determinan lain yang sering terpakai: det(A @ B) = det(A) × det(B).

Makna Geometris: Faktor Skala Luas #

Determinant punya tafsiran geometris yang langsung: nilai mutlaknya adalah faktor pengali luas. Persegi satuan dengan titik sudut (0, 0), (1, 0), (0, 1), dan (1, 1), ketika ditransformasi oleh A = [[1, 2], [3, 4]], menjadi jajar genjang yang dibentang oleh vektor (1, 3) dan (2, 4) — keduanya adalah kolom-kolom A. Luas jajar genjang itu 2, yaitu |det(A)|, dua kali luas semula. Tanda negatif pada det(A) = -2 membawa informasi lain: orientasi terbalik, efek yang sama seperti pencerminan.

Nilai determinantArti pada transformasi
|det| > 1luas dikembangkan; det = 2 berarti luas menjadi dua kali
0 < |det| < 1luas disusutkan
det = 0seluruh bidang dipadatkan ke garis atau titik — matriks singular
det < 0orientasi terbalik, seperti hasil pencerminan

Tafsiran luas inilah yang menjelaskan kenapa determinant nol membuat inverse tidak ada: transformasi yang memadatkan bidang ke sebuah garis tidak bisa diputar balik, karena informasi arah tegak lurusnya sudah hilang dari hasilnya.