Dosen Pembimbing : Prof. Dr. Suhartono, M.Kom

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : Teknik Informatika

Fakultas : Sains dan Teknologi

Setelah mengetahui bagaimana cara mengoperasikan operasi logika di R Studio. Selanjutnya artikel ini akan menjelaskan mengenai cara untuk menyelesaikan sistem persamaan linier dengan cara menganalisis penggunaan operasi aljabar yang terdiri dari operasi vektor, factor, dan matriks menggunakan R Markdown di aplikasi R Studio ini. Berikut adalah penjelasannya.

Sistem Persamaan Linear

Persamaan linear umumnya mempunyai bentuk Persamaan linear secara umum mempunyai bentuk :

alt text dengan alt text dan alt text adalah bilangan-bilangan real, alt text

Sedangkan sistem persamaan linear adalah persamaan-persamaan linear yang dikorelasikan untuk membentuk suatu sistem. Sistem persamaannya bisa terdiri dari satu variabel, dua variabel atau lebih. Bentuk umum sistem persamaan linier dengan m persamaan dan n variabel adalah sebagai berikut : alt text

Aljabar Linear

Aljabar linear yaitu proses studi matematika yang mempelajari sistem persamaan linear dan solusinya, vektor, serta transformasi linear. Terdapat berbagai macam aljabar linear. Namun, pada artikel kali ini hanya akan dibahas 3 materi, yaitu vektor, factor, dan matriks.

1. Vektor

vektor merupakan ruas garis berarah yang memiliki besaran (nilai) dan arah tertentu. Secara geometris, suatu vektor dapat digambarkan sebagai ruas garis berarah dengan panjang ruas garis menyatakan besar vektor dan arah ruas garis menyatakan arah vektor. alt text

Vector adalah objek data paling sederhana yang ada di dalam R. Secara umum jenis vector terbagi 2, yaitu numeric dan character. Ada banyak sekali cara untuk membuat sebuah vector di R yaitu sebagai berikut.

1.1. Fungsi c()

Fungsi yang paling sering digunakan untuk membuat sebuah vector adalah dengan menggunakan fungsi c().

y <- c(3, 9, 6, 7, 8)
y
## [1] 3 9 6 7 8

Pada script di atas, dibuat sebuah objek y berupa vector numeric. Setiap elemen dipisah menggunakan tanda koma (,). Fungsi ini dapat digunakan untuk membuat vector numeric atau character. Selain itu jika ingin mengambil salah satu elemen dapat dilakuakn dengan :

y [4]
## [1] 7

1.2. Tanda titik dua/colon (:)

Tanda ini berfungsi untuk membuat sebuah vector numeric berurutan secara meningkat atau menurun. Contohnya sebagai berikut.

a <- 4:9 # 4 sampai 9
a
## [1] 4 5 6 7 8 9

Fungsi dari operator : pada contoh di atas adalah membuat vector numeric dengan nilai dari 4 s/d 9. Perlu diingat bahwa operator ini hanya dapat digunakan untuk numeric dan meningkat sebesar 1 nilai. Operator ini dapat juga digunakan untuk membuat vector dengan nilai menurun.

# membuat vector numeric dengan nilai dari 15 s/d 3 secara menurun 1
x <- 15:3 # 15 sampai 3
x
##  [1] 15 14 13 12 11 10  9  8  7  6  5  4  3

1.3. Fungsi seq()

Fungsi ini dapat digunakan untuk membuat vector berurutan dan dengan increment tertentu.

y <- seq(from = 5, to = 10) # 5 sampai 10 dengan increment 1 (default by = 1)
y
## [1]  5  6  7  8  9 10

Secara default increment dari fungsi seq() adalah by = 1. Jika Anda ingin nilai increment lain maka hanya perlu mengganti nilai pada argumen by.

y <- seq(from = 1, to = 15, by = 3) # 1 sampai 15 dengan increment 3
y
## [1]  1  4  7 10 13
x <- seq(from = 1, to = 8, length.out = 10) # 1 sampai 8, sebanyak 10 elemen, increment mengikuti
x
##  [1] 1.000000 1.777778 2.555556 3.333333 4.111111 4.888889 5.666667 6.444444
##  [9] 7.222222 8.000000

Operasi bilangan menggunakan fungsi seq() :

p <- seq(1,5) #vektor dari 1 sampai 5
q <- seq(6,10) # vektor dari 6 sampai 10

Berikut adalah operasi pertambahan, pengurangan, dan perkaliannya.

# Penjumlahan
p + q
## [1]  7  9 11 13 15
# Pengurangan
p - q
## [1] -5 -5 -5 -5 -5
# Perkalian
p * q
## [1]  6 14 24 36 50
# Pembagian
p / q
## [1] 0.1666667 0.2857143 0.3750000 0.4444444 0.5000000

1.4. Fungsi rep()

Fungsi rep() digunakan untuk mengulang-ulang nilai vektor sebanyak yang dibutuhkan atau diinginkan

# Membuat sebuah vector numeric yang semua elemennya bernilai 8 sebanyak 8 elemen
x <- rep(8, 8)
x
## [1] 8 8 8 8 8 8 8 8

1.5. Vector character

Vector character adalah vector yang semua elemennya bertipe character.

z <- c("a", "A", "d", "c")
z
## [1] "a" "A" "d" "c"
c(1, 2, 3, 5, "a")
## [1] "1" "2" "3" "5" "a"

Meskipun hanya ada satu elemen yang bertipe character. Namun, ketika dijalankan semua elemen akan bertipe character.

2. Factor

Factor merupakan bentuk lebih luas dari vector. Biasanya factor lebih sering digunakan untuk menyimpan data nominal atau ordinal. Misalnya vector character yang berisi “buah” dan “sayuran”. Pada vector character, nilainya adalah “buah” dan “sayuran” seperti terlihat apa adanya. Namun pada factor, tampilan dari isi datanya mungkin “buah” dan “sayuran” tetapi isi dari factor adalah pengkodean numerik. Misal untuk “buah” nilai sebenarnya adalah 1, sedangkan “sayuran” berniali 2.

fc <- factor(c("Sedang", "Mudah", "Sedang", "Susah", "Susah", "Sedang", "Mudah", "Mudah"))
fc
## [1] Sedang Mudah  Sedang Susah  Susah  Sedang Mudah  Mudah 
## Levels: Mudah Sedang Susah

NIlai sebenarnya factor tersebut adalah

print.default(fc)
## [1] 2 1 2 3 3 2 1 1

3. Matriks

Matriks adalah objek di R yang memiliki 2 dimensi, baris (row/m) dan kolom (column/n), dan tipe nilainya sama. Membuat matriks di R menggunakan vector yang dikonversi dimensinya. Karena seperti yang sudah diketahui bahwa sebuah vector di R tidak mempunyai dimensi, tetapi dapat dibayangkan seperti matriks berukuran m baris dan 1 (satu) kolom.

Misalnya kita memiliki sebuah vector numerik y dengan banyaknya elemen sebanyak 9 seperti berikut ini.

y <- c(8, 5, 2, 3, 9, 5, 1, 7, 4)
y
## [1] 8 5 2 3 9 5 1 7 4
length(y)
## [1] 9

Karena vector x memiliki 9 elemen, maka dimensi matriks yang dapat dibuat adalah 2 angka yang hasil perkaliannya menghasilkan nilai 9. Salah satunya adalah 3 x 3 = 9. Untuk membuat matriks di R, kita dapat gunakan fungsi matrix() dengan argumen pertama adalah vector. Argumen untuk menentukan ukuran matriks kita dapat gunakan ncol atau nrow. Bisa kita gunakan keduanya atau hanya salah satu saja. Misalnya kita gunakan nrow = 3 agar matriks yang dihasilkan matriks persegi berukuran 3x3 karena 3 x 3 = 9. Artinya sama saja dengan kita menggunakan ncol = 3 karena dengan nrow = 3 secara otomatis ncol = 3.

m <- matrix(data = y, nrow = 3)
m
##      [,1] [,2] [,3]
## [1,]    8    3    1
## [2,]    5    9    7
## [3,]    2    5    4

Contoh lain

z <- c(2, 4, 6, 8, 1, 4, 5, 7, 9, 10, 6, 8)
z
##  [1]  2  4  6  8  1  4  5  7  9 10  6  8
n <- matrix(data = z, nrow = 3)
n
##      [,1] [,2] [,3] [,4]
## [1,]    2    8    5   10
## [2,]    4    1    7    6
## [3,]    6    4    9    8
o <- c(2, 4, 3, 7, 1, 4, 5, 9, 6, 8, 4, 2)
o
##  [1] 2 4 3 7 1 4 5 9 6 8 4 2
o <- matrix(data = o, nrow = 3)
o
##      [,1] [,2] [,3] [,4]
## [1,]    2    7    5    8
## [2,]    4    1    9    4
## [3,]    3    4    6    2
# Pertambahan
o + n
##      [,1] [,2] [,3] [,4]
## [1,]    4   15   10   18
## [2,]    8    2   16   10
## [3,]    9    8   15   10
# Pengurangan
o - n
##      [,1] [,2] [,3] [,4]
## [1,]    0   -1    0   -2
## [2,]    0    0    2   -2
## [3,]   -3    0   -3   -6

Selanjutnya di dalam matriks terdapat berbagai macam operasi. Namun di dalam artikel ini, penulis akan membahas satu macam operasi saja yaitu operasi baris elementer.

3.1. Operasi Baris Elementer

Terdapat tiga buah operasi dasar pada baris matriksoperasi baris elementer. Ketiga operasi ini akan menjadi dasar operasi sub-chapter selanjutnya. Ketiga operasi dasar tersebut antara lain:

1. Row Scalling. Mengalikan baris matriks dengan konstanta bukan nol.
2. Row Swaping. Menukar urutan baris pada sebuah matriks (contoh:
menukar baris 1 dengan baris 2 dan sebaliknya).
3. Row Replacement. Baris matriks diganti dengan hasil penjumlahan
atau pengurangan baris matriks tersebut dengan baris matriks lainnya,
dimana baris matriks lainnya yang akan dijumlahkan/dikurangkan dengan matriks tersebut telah dilakukan proses row scalling. Luaran yang
diperoleh pada umumnya adalah nilai nol pada baris matriks awal atau
akhir

Ketiga proses tersebut akan terjadi secara berulang, khusunya jika kita hendak mengerjakan sistem persamaan linier menggunakan algoritma eliminasi Gauss. Untuk mempermudah proses tersebut, kita dapat membuat masing-masing fungsi untuk masing-masing operasi tersebut. Algoritma fungsi-fungsi tersebut selanjutnya menjadi dasar penyusunan algoritma fungsi-fungsi eliminasi Gauss dan dekomposisi matriks yang akan dijelaskan pada chapter selanjutnya. Fungsi row scalling pada R dapat dituliskan pada sintaks berikut:

scale_row <- function(m, row, k){
m[row, ] <- m[row, ]*k
return(m)
}

Contohnya yaitu :

# membuat matriks A
(A <- matrix(1:8, nrow=2))
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    2    4    6    8
# lakukan scaling pada row 2 dengan nilai 8
scale_row(m=A, row=2, 8)
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]   16   32   48   64

Pada matriks tersebut dilakukan scaling atau pergantian nilai di salah satu row yaitu di row 2 dengan mengalikannya oleh angka 8. Row swapping merupakan proses yang berulang, kita perlu menyimpan terlebih dahulu baris matriks pertama kedalam sebuah objek. Baris matriks pertama selanjutnya diganti dengan baris matriks kedua, sedangkan baris matriks kedua selanjutnya akan diganti dengan baris matriks pertama yang telah terlebih dahulu disimpan dalam sebuah objek. Fungsi row swapping pada R dapat dituliskan pada sintaks berikut:

swap_row <- function(m, row1, row2){
row_tmp <- m[row1, ]
m[row1, ] <- m[row2, ]
m[row2, ] <- row_tmp
return(m)
}

Berikut merupakan contoh penerapan fungsi swap_row() :

# pertukarkan baris 1 dengan baris 2
swap_row(m=A, row1=1, row2=2)
##      [,1] [,2] [,3] [,4]
## [1,]    2    4    6    8
## [2,]    1    3    5    7

Pada proses row replacement, proses perhitungan dilakukan dengan melakukan penjumlahan suatu baris matriks dengan baris matriks lainnya dengan terlebih dahulu melakukan row scalling terhadap matriks lainnya. Berikut adalah fungsi replace_row() yang ditulis pada R:

replace_row <- function(m, row1, row2, k){
m[row2, ] <- m[row2, ] + m[row1, ]*k
return(m)
}

Berikut adalah contoh penerapan fungsi replace_row():

replace_row(m=A, row1=1, row2=2, k=3)
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    5   13   21   29

Demikian, analisis tentang penggunaan operasi aljabar linear yang terdiri dari vektor, factor, dan matriks pada R Markdown di aplikasi R Studio.

Daftar Pustaka