💡 Dekomposisi Matriks dan Konsep Jarak

Penjelasan, Rumus, dan Contoh dari Praktikum 1

Disusun oleh Rovita Dwi Pratiwi

Tanggal: 2025-09-11

1 OPERASI MATRIKS

1.1 Penjumlahan Matriks

Penjumlahan matriks adalah operasi matematika yang menjumlahkan dua matriks dengan cara menjumlahkan elemen-elemen yang bersesuaian pada posisi yang sama. Kedua matriks harus memiliki ukuran (ordo) yang sama, yaitu jumlah baris dan kolomnya sama.

1.1.1 Rumus

\[ A + B = \begin{bmatrix} a_{11}+b_{11} & a_{12}+b_{12} \\ a_{21}+b_{21} & a_{22}+b_{22} \end{bmatrix} \]

1.1.2 Contoh soal

A <- matrix(c(2,4,7,
              3,5,8,
              1,6,9), 
            nrow = 3, byrow = FALSE)

B <- matrix(c(1,2,6,
              0,3,7,
              4,5,8), 
            nrow = 3, byrow = FALSE)

A_plus_B <- A + B
A_plus_B
##      [,1] [,2] [,3]
## [1,]    3    3    5
## [2,]    6    8   11
## [3,]   13   15   17

1.2 Pengurangan Matriks

Pengurangan matriks adalah operasi matematika untuk mengurangi dua matriks dengan cara mengurangkan elemen-elemen yang bersesuaian pada posisi yang sama.Kedua matriks harus memiliki ordo yang sama (jumlah baris dan kolom sama).

1.2.1 Rumus

\[ A - B = \begin{bmatrix} a_{11}-b_{11} & a_{12}-b_{12} & a_{13}-b_{13} \\ a_{21}-b_{21} & a_{22}-b_{22} & a_{23}-b_{23} \\ a_{31}-b_{31} & a_{32}-b_{32} & a_{33}-b_{33} \end{bmatrix} \]

1.2.2 Contoh soal

A <- matrix(c(2,4,7,
              3,5,8,
              1,6,9), 
            nrow = 3, byrow = FALSE)

B <- matrix(c(1,2,6,
              0,3,7,
              4,5,8), 
            nrow = 3, byrow = FALSE)

A_minus_B <- A - B
A_minus_B
##      [,1] [,2] [,3]
## [1,]    1    3   -3
## [2,]    2    2    1
## [3,]    1    1    1

1.3 Perkalian Matriks

Perkalian matriks adalah operasi matematika untuk mengalikan dua matriks dengan cara mengalikan elemen-elemen baris pada matriks pertama dengan elemen-elemen kolom pada matriks kedua, lalu menjumlahkannya.

1.3.1 Rumus

\[ c_{ij} = \sum_{k=1}^{n} a_{ik} \cdot b_{kj} \]

1.3.2 Contoh Soal

A <- matrix(c(1, 2,
              3, 4), nrow = 2, byrow = TRUE)

B <- matrix(c(5, 6,
              7, 8), nrow = 2, byrow = TRUE)

C <- A %*% B
C
##      [,1] [,2]
## [1,]   19   22
## [2,]   43   50

1.4 Perkalian Antar Elemen

Perkalian antar elemen (Hadamard Product) adalah operasi perkalian dua matriks dengan ukuran (ordo) yang sama, di mana setiap elemen hasilnya diperoleh dengan mengalikan elemen pada posisi yang sama.

1.4.1 Rumus

\[ C = \begin{bmatrix} a_{11} \cdot b_{11} & a_{12} \cdot b_{12} & \dots & a_{1n} \cdot b_{1n} \\ a_{21} \cdot b_{21} & a_{22} \cdot b_{22} & \dots & a_{2n} \cdot b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} \cdot b_{m1} & a_{m2} \cdot b_{m2} & \dots & a_{mn} \cdot b_{mn} \end{bmatrix} \]

1.4.2 Contoh Soal

A <- matrix(c(1, 2,
              3, 4), nrow = 2, byrow = TRUE)

B <- matrix(c(5, 6,
              7, 8), nrow = 2, byrow = TRUE)

C <- A * B
C
##      [,1] [,2]
## [1,]    5   12
## [2,]   21   32

1.5 Transpose

Transpose matriks adalah operasi yang menukar baris menjadi kolom dan kolom menjadi baris pada suatu matriks. Jika ada matriks 𝐴 A berukuran 𝑚 × 𝑛 m×n, maka transpose-nya, yang dilambangkan dengan 𝐴 𝑇 A T , adalah matriks berukuran 𝑛 × 𝑚 n×m.

1.5.1 Rumus

\[ A = \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mn} \end{bmatrix} , A^T = \begin{bmatrix} a_{11} & a_{21} & \dots & a_{m1} \\ a_{12} & a_{22} & \dots & a_{m2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \dots & a_{mn} \end{bmatrix} \]

1.5.2 Contoh Soal

A <- matrix(c(1, 2, 3, 
              4, 5, 6), 
            nrow = 2, byrow = TRUE)

A
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
A_transpose <- t(A)
A_transpose
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6

1.6 Invers

Invers matriks adalah kebalikan dari suatu matriks persegi (matriks yang jumlah barisnya sama dengan jumlah kolomnya). Jika sebuah matriks 𝐴 A memiliki invers, maka inversnya dilambangkan dengan 𝐴 − 1 A −1 .

1.6.1 Rumus

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]

1.6.2 Contoh Soal

A <- matrix(c(2, 1, 
              5, 3), 
            nrow = 2, byrow = TRUE)
A
##      [,1] [,2]
## [1,]    2    1
## [2,]    5    3
determinant_A <- det(A)
determinant_A
## [1] 1
A_inverse <- solve(A)
A_inverse
##      [,1] [,2]
## [1,]    3   -1
## [2,]   -5    2

1.7 Determinan

Determinan matriks adalah nilai skalar yang dihitung dari sebuah matriks persegi ( 𝑛 × 𝑛 n×n) dan memiliki banyak kegunaan dalam aljabar linear, seperti untuk menentukan apakah suatu matriks dapat dibalik (invers) atau tidak.

1.7.1 Rumus

\[ \det(A) = ad - bc \det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \\det(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a(ei - fh) - b(di - fg) + c(dh - eg) \]

1.7.2 Contoh Soal

A <- matrix(c(2, 3,
              4, 5),
            nrow = 2, byrow = TRUE)
A
##      [,1] [,2]
## [1,]    2    3
## [2,]    4    5
determinant_A <- det(A)
determinant_A
## [1] -2
B <- matrix(c(2, 4, 3,
                    1, 5, 7,
                    6, 8, 9), 
                  nrow = 3, 
                  ncol = 3, 
                  byrow = TRUE)
B
##      [,1] [,2] [,3]
## [1,]    2    4    3
## [2,]    1    5    7
## [3,]    6    8    9
determinant_B <- det(B)
determinant_B
## [1] 44

2 Eigen Dan Dekomposisi

2.1 Eigen Value dan Eigen Vector

Eigenvalue (nilai eigen) adalah skalar khusus yang menunjukkan seberapa besar suatu transformasi linear (yang direpresentasikan oleh sebuah matriks persegi) meregangkan atau mengecilkan suatu vektor (disebut eigenvector) tanpa mengubah arah vektor tersebut.

2.1.1 Rumus

\[ \det(A - \lambda I) = \begin{vmatrix} a-\lambda & b \\ c & d-\lambda \end{vmatrix} = (a-\lambda)(d-\lambda) - bc = 0 \]

2.1.2 Contoh Soal

A <- matrix(c(2, 1,
              1, 2),
            nrow = 2, byrow = TRUE)
A
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    2
eigen_A <- eigen(A)
eigen_A$values    
## [1] 3 1
eigen_A$vectors   
##           [,1]       [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068  0.7071068

2.2 Dekomposisi Singular Value (SVD)

Dekomposisi Singular Value (Singular Value Decomposition, SVD) adalah teknik aljabar linear untuk memecah sebuah matriks 𝐴 A berukuran 𝑚 × 𝑛 m×n menjadi tiga matriks.

2.2.1 Rumus

\[ A = U \Sigma V^T \]

2.2.2 Contoh Soal

# Membuat matriks A
A <- matrix(c(2, 4, 3,
              1, 5, 7,
              6, 8, 9),
            nrow = 3, byrow = TRUE)
A
##      [,1] [,2] [,3]
## [1,]    2    4    3
## [2,]    1    5    7
## [3,]    6    8    9
svd_A <- svd(A)
svd_A$u
##            [,1]       [,2]         [,3]
## [1,] -0.3173925  0.1832897 -0.930412219
## [2,] -0.5018010 -0.8649827  0.000779704
## [3,] -0.8046476  0.4671293  0.366513978
svd_A$d
## [1] 16.6427574  2.6501773  0.9975909
svd_A$v
##            [,1]        [,2]       [,3]
## [1,] -0.3583824  0.86951634  0.3398579
## [2,] -0.6138259  0.05481881 -0.7875358
## [3,] -0.7034059 -0.49085256  0.5140856

3 MATRIKS JARAK

3.1 Jarak Euclidean

Jarak Euclidean (Euclidean Distance) adalah jarak lurus terpendek antara dua titik dalam ruang Euclidean (garis, bidang, atau ruang berdimensi lebih tinggi). Konsep ini berasal dari geometri Euclid dan merupakan salah satu ukuran jarak paling umum digunakan dalam analisis data, machine learning, dan statistik.

3.1.1 Rumus

\[ d(P,Q) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} \]

3.1.2 Contoh Soal

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
kota <- data.frame(
  Nama = c("Kota A", "Kota B", "Kota C", "Kota D", "Kota E"),
  X = c(230, 120, 250, 400, 550),
  Y = c(220, 80, 200, 320, 450)
)
coords <- kota[, c("X", "Y")]
kota
##     Nama   X   Y
## 1 Kota A 230 220
## 2 Kota B 120  80
## 3 Kota C 250 200
## 4 Kota D 400 320
## 5 Kota E 550 450
dist.eucl <- dist(coords, method = "euclidean")
dist.eucl
##           1         2         3         4
## 2 178.04494                              
## 3  28.28427 176.91806                    
## 4 197.23083 368.78178 192.09373          
## 5 394.08121 567.27418 390.51248 198.49433
fviz_dist(dist.eucl, gradient = list(low = "blue", high = "yellow"))

3.1.3 Kesimpulan

Berdasarkan perhitungan jarak Euclidean dari koordinat lima kota, terlihat bahwa Kota A dan Kota C memiliki jarak yang relatif dekat karena koordinat keduanya mirip, sehingga pada heatmap ditunjukkan dengan warna biru keunguan. Kota D dan Kota E juga berada berdekatan, tercermin dari warna yang serupa. Sebaliknya, Kota B memiliki jarak yang cukup jauh dengan Kota E, yang ditunjukkan dengan warna kuning terang pada heatmap sebagai jarak terbesar di antara semua pasangan kota. Pola warna juga menunjukkan bahwa Kota B terletak lebih terpisah dibandingkan kota lainnya, sementara Kota A dan C berada lebih sentral sehingga jaraknya dengan kota-kota lain tidak terlalu ekstrem

3.2 Jarak Chebyshev

Jarak Chebyshev (Chebyshev Distance) adalah ukuran jarak antara dua titik dalam ruang vektor yang dihitung berdasarkan perbedaan maksimum antar koordinatnya. Dengan kata lain, jarak ini melihat perbedaan terbesar pada satu dimensi sebagai jarak antar titik tersebut.

3.2.1 Rumus

\[ d_{\text{Chebyshev}}(P,Q) = \max_{i} |x_i - y_i| \]

dist.cheb <- dist(coords, method = "maximum")
dist.cheb
##     1   2   3   4
## 2 140            
## 3  20 130        
## 4 170 280 150    
## 5 320 430 300 150
fviz_dist(dist.cheb, gradient = list(low = "pink", high = "green"))

3.2.2 Kesimpulan

Dari pola warna terlihat bahwa Kota B dan Kota C memiliki jarak Chebyshev yang relatif besar (warna hijau), sedangkan Kota A dan Kota C jaraknya lebih kecil (warna mendekatipink), menandakan bahwa koordinat keduanya cukup dekat di satu dimensi. Kota E memiliki jarak Chebyshev yang relatif tinggi terhadap kota lainnya karena berada paling jauh di ujung koordinat.

3.3 Jarak Manhattan

Jarak Manhattan (Manhattan Distance) adalah ukuran jarak antara dua titik yang dihitung sebagai jumlah nilai mutlak perbedaan tiap koordinatnya.
Disebut “Manhattan” karena perhitungannya mirip jarak yang ditempuh di jalan kota Manhattan yang berbentuk grid (hanya bergerak horizontal dan vertikal, tidak diagonal).

3.3.1 Rumus

\[ P = (x_1, x_2, \dots, x_n), \quad Q = (y_1, y_2, \dots, y_n) \] \[ d_{\text{Manhattan}}(P,Q) = \sum_{i=1}^{n} |x_i - y_i| \]

dist.manh <- dist(coords, method = "manhattan")
dist.manh
##     1   2   3   4
## 2 250            
## 3  40 250        
## 4 270 520 270    
## 5 550 800 550 280
fviz_dist(dist.manh, gradient = list(low = "green", high = "blue"))

3.3.2 Kesimpulan

Kota B dan Kota C memiliki jarak Manhattan terbesar (warna biru tua), menunjukkan perbedaan koordinat yang signifikan di kedua sumbu.Kota A dan Kota C atau Kota D dan Kota E tampak lebih dekat (warna hijau), artinya posisi mereka relatif berdekatan.Kota B secara umum lebih jauh dari kota-kota di ujung seperti Kota E, sementara kota-kota tengah (A dan C) berada di posisi strategis dengan jarak sedang terhadap kota lainnya.

3.4 Jarak Mahalanobis

Jarak Mahalanobis adalah ukuran jarak antara sebuah titik data dengan pusat distribusi multivariat (mean) dari data tersebut, dengan memperhitungkan korelasi antar variabel.

3.4.1 Rumus

\[ D_M(\mathbf{x}) = \sqrt{ (\mathbf{x} - \boldsymbol{\mu})^T \mathbf{S}^{-1} (\mathbf{x} - \boldsymbol{\mu}) } \]

S <- cov(coords)
S
##       X     Y
## X 27950 23000
## Y 23000 19280
S_inv <- tryCatch(
  solve(S),
  error = function(e) ginv(S)
)

mu <- colMeans(coords)
D_maha <- mahalanobis(coords, center = mu, cov = S_inv)
D_maha
## [1]  326287680 3113476280  305880480  583618680 4514420480

3.5 Jarak Minkowski

Jarak Minkowski adalah ukuran jarak antara dua titik dalam ruang vektor yang ditentukan oleh sebuah parameter p untuk mencari jarak umum karena menjadi bentuk dasar yang mencakup berbagai jenis jarak lain.

\[ D_p(x, y) = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{\frac{1}{p}} \]

p_val <- 3  # bisa diganti sesuai kebutuhan
dist.mink <- dist(coords, method = "minkowski", p = p_val)
dist.mink
##           1         2         3         4
## 2 159.72609                              
## 3  25.19842 157.74171                    
## 4 180.82950 329.50646 172.16381          
## 5 355.51799 506.78744 349.31840 177.28434
fviz_dist(dist.mink, gradient = list(low = "yellow", high = "purple"))

Kota B dan Kota C memiliki jarak yang relatif besar (warna ungu), menunjukkan koordinat keduanya cukup jauh. Kota A dan Kota C atau Kota D dan Kota E terlihat lebih dekat (warna oranye ke kuning). Kota E memiliki jarak yang besar terhadap kota B.

4 VEKTOR RATA-RATA

4.1 Matriks Rata-Rata

Vektor rata-rata adalah vektor yang berisi nilai rata-rata dari setiap variabel (komponen) dalam suatu kumpulan data multivariat. Jika kita memiliki n pengamatan (observasi) dan p variabel, maka vektor rata-rata berukuran p . Vektor ini berguna untuk menggambarkan pusat data (center) dalam analisis statistik multivariat.

4.1.1 Rumus

\[ \bar{x} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n x_{i1} \\ \frac{1}{n}\sum_{i=1}^n x_{i2} \\ \vdots \\ \frac{1}{n}\sum_{i=1}^n x_{ip} \end{bmatrix} \]

4.1.2 Contoh Soal

data <- data.frame(
  X1 = c(2, 4, 6, 8),
  X2 = c(1, 3, 5, 7),
  X3 = c(10, 20, 30, 40)
)

colMeans(data)
## X1 X2 X3 
##  5  4 25

4.2 Matriks Kovarians

Matriks persegi yang memuat kovarians antar variabel dalam suatu dataset multivariat. Diagonal utama memuat varians tiap variabel, sedangkan elemen di luar diagonal memuat kovarians antara dua variabel berbeda.

4.2.1 Rumus

\[ \Sigma = \frac{1}{n-1}(X - \bar{X})^T(X - \bar{X}) \]

4.2.2 Contoh Soal

data <- data.frame(
  X1 = c(2, 4, 6, 8),
  X2 = c(1, 3, 5, 7),
  X3 = c(10, 20, 30, 40)
)
cov_matrix <- cov(data)
cov_matrix
##           X1        X2        X3
## X1  6.666667  6.666667  33.33333
## X2  6.666667  6.666667  33.33333
## X3 33.333333 33.333333 166.66667

4.3 Matriks Korelasi

Matriks korelasi adalah matriks persegi yang berisi nilai koefisien korelasi antar variabel dalam sebuah dataset multivariat. Nilai di diagonal utama selalu 1, karena setiap variabel berkorelasi sempurna dengan dirinya sendiri.Matriks korelasi digunakan untuk mengetahui hubungan antar variabel dan mengidentifikasi multikolinearitas.

4.3.1 Rumus

\[ R = \begin{bmatrix} 1 & r_{12} & r_{13} & \cdots & r_{1p} \\ r_{21} & 1 & r_{23} & \cdots & r_{2p} \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ r_{p1} & r_{p2} & \cdots & r_{pp} & 1 \end{bmatrix} \]

4.3.2 Contoh Soal

# Membuat data
data <- data.frame(
  X1 = c(20, 44, 36, 18),
  X2 = c(19, 23, 25, 37),
  X3 = c(10, 20, 30, 40)
)


cor_matrix <- cor(data)
cor_matrix
##            X1         X2         X3
## X1  1.0000000 -0.3761921 -0.1436370
## X2 -0.3761921  1.0000000  0.9333333
## X3 -0.1436370  0.9333333  1.0000000

4.4 Matriks Standarisasi

Matriks standarisasi adalah matriks yang diperoleh dengan menstandarkan (menormalisasi) setiap variabel data sehingga memiliki Rata-rata (mean) = 0 dan Simpangan baku (standard deviation) = 1. Tujuannya adalah agar semua variabel berada pada skala yang sam, sehingga tidak ada variabel yang mendominasi analisis karena perbedaan satuan atau skala pengukuran.

4.4.1 Rumus

\[ Z = \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1p} \\ z_{21} & z_{22} & \cdots & z_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots & z_{np} \end{bmatrix} \]

4.4.2 Contoh Soal

# Membuat data
data <- data.frame(
  X1 = c(2, 4, 6, 8),
  X2 = c(1, 3, 5, 7),
  X3 = c(10, 20, 30, 40)
)


standarisasi <- scale(data)
standarisasi
##              X1         X2         X3
## [1,] -1.1618950 -1.1618950 -1.1618950
## [2,] -0.3872983 -0.3872983 -0.3872983
## [3,]  0.3872983  0.3872983  0.3872983
## [4,]  1.1618950  1.1618950  1.1618950
## attr(,"scaled:center")
## X1 X2 X3 
##  5  4 25 
## attr(,"scaled:scale")
##        X1        X2        X3 
##  2.581989  2.581989 12.909944