Bab 3 Variabel dan Operator


3.1 Tujuan Pembelajaran

CPMK 3

Mahasiswa mampu mendefinisikan variabel dan operator dalam pemrograman dasar dan menerapkannya dalam bahasa R.

Sub-CPMK 3

Mahasiswa mampu menganalisis operasi dasar, aritmatika, matriks, transpose, cross-product, dan logika dalam R.

Deskripsi Isi Bahan Ajar

Bab 3 ini membahas tentang:

  1. Aturan Pendefinisian Variabel R
  2. Operasi Dasar R
  3. Tipe Operator R
  4. Operasi Matriks dengan R
  5. Operator Relasi R
  6. Operator Logika R

Waktu Pembelajaran

Alokasi Waktu = 3 x 50 menit (3 SKS)

Kegiatan Alokasi Waktu
Ceramah dan Diskusi Interaktif 50 menit
Praktik Variabel dan Operator R 50 menit
Konsultasi Praktik R 50 menit
Presentasi individu 50 menit

Petunjuk Penggunaan Bahan Ajar

  1. Langkah-langkah pembelajaran.
    Pelajari aturan pendefinisian variabel, operasi dasar, tipe operator, operasi matriks, operator relasi, dan operator logika pada R. Terapkan pengetahuan Anda pada contoh-contoh kasus yang telah disajikan secara individu kolaboratif. Konsultasikanlah kesulitan Anda selama praktik pada pengajar mata kuliah ini. Anda bisa bekerja dengan IDE RStudio secara offline maupun online.

  2. Sumber Belajar yang Dibutuhkan.
    Laptop (Notebook), jaringan internet

Tujuan Akhir (Performance Objective)

Setelah menyelesaikan modul ini, mahasiswa mampu memahami aturan pendefinisian variabel, operasi dasar, tipe operator, operasi matriks, operator relasi, dan operator logika.

3.2 Aturan Pendefinisian Variabel

Pada bab sebelumnya kita telah mempelajari berbagai macam tipe data di dalam R. Sekarang kita akan melanjutkan pembelajaran pemrograman dasar ini dengan memahami konsep dari sebuah variabel. Variabel adalah satuan dasar dari proses pemrograman komputer. Hampir seluruh bahasa pemrograman memiliki aktivitas kita untuk membuat sebuah variabel. Variabel adalah objek pemrograman yang dibuat untuk menyimpan data berupa nilai tertentu sesuai dengan kebutuhan kita. Nama variabel harus “unik” (baik untuk nama objek atau fungsi) karena berfungsi sebagai penanda (identifier).

Aturan Penulisan Nama Variabel di R

  • Nama variabel bisa disusun dari kombinasi dari huruf, angka, period (.), dan garis bawah (_).
  • Nama variabel harus dimulai dengan huruf atau period (.). Jika dimulai dengan period (.) maka karakter berikutnya tidak boleh menggunakan angka.
  • Kata yang sudah digunakan dalam base R tidak boleh digunakan sebagai nama variabel.
  • Di dalam R, pemisah nama variabel diperbolehkan menggunakan garis bawah (_), meskipun demikian penggunaan period (.) akan lebih disukai dalam lingkungan pemrograman R (meskipun mungkin tidak semua programmer R akan menerapkan kebiasaan ini). Nama variabel seperti “a_variable_name” bisa diganti sebagai “a.variable.name” atau bahkan tanpa pemisah seperti “aVariableName”.
  • R menggunakan <- untuk menyimpan nilai pada suatu variabel. Sebagai contoh untuk menyimpan nilai 15 pada variabel yang bernama x kita tuliskan x <- 15
  • Dalam R, tanda = agak jarang digunakan dalam pemrograman.
  • R juga bersifat case-sensitive artinya nama variabel “gaData” berbeda dengan “gadata” dan Anda harus hati-hati dan cermat terhadap hal ini dalam menulis sintaks R.

Contoh:

Berikut ini adalah contoh nama variabel yang diperbolehkan (tidak error).

# Nama dengan huruf lowercase
total <- 12

# Nama dengan awalan huruf kapital
Sum <- 12 + 12

# Nama dengan awalah titik (.)
.fine.with.dot <- 12

# Nama dengan teks dan garis bawah (_)
this_is_underscore <- 12

# Nama dengan semua huruf kapital
TEXT <- 12

Berikut ini adalah contoh nama variabel yang tidak diperbolehkan (error).

total@1

5sum <- 12

_fine <- 12

TRUE <- 12

Konstanta di R

Selain variabel yang nilainya dapat “berubah”, R juga mendukung objek berupa konstanta. Konstanta adalah objek R yang memiliki nilai yang tetap. Nilai dari konstanta dapat berupa numerik atau karakter.

Konstanta Numerik

Semua angka (bilangan) termasuk dalam kategori konstanta ini. Nilai kontanta numerik dapat berupa tipe data integer, double, atau complex. Tipe data ini dapat kita periksa dengan fungsi typeof. Konstanta numerik yang diikuti dengan “L” dianggap sebagai integer, dan konstanta yang diikuti dengan “i” dianggap sebagai kompleks.

Contoh:

typeof(6)
## [1] "double"
typeof(4L)
## [1] "integer"
typeof(34.34)
## [1] "double"
typeof(2 + 3i)
## [1] "complex"

Konstanta numerik yang diawali dengan “0x” diartikan sebagai bilangan heksadesimal. Berikut ini adalah contoh dari bilangan heksadesimal.

0x1001
## [1] 4097

Ini artinya adalah “1001” merupakan bilangan heksadesimal yaitu sistem bilangan 16 dimana dimulai dari 0-9 (untuk angka 1 sampai 10) dan A-F (untuk angka 11-16). Jadi jika 1001 = \(1\times16^3+0\times16^2+0\times16^1+1\times16^0=4096+0+0+1=4097\)

0xff
## [1] 255

Lalu pada contoh di atas jika FF = \(15\times16^1+15\times16^0=240+15=255\)

0xf
## [1] 15
0xfff + 0xf
## [1] 4110
0xff + 0xf
## [1] 270

Konstanta Karakter

Konstanta karakter dapat ditulis dengan menggunakan tanda kutip tunggal (’) atau ganda (“) sebagai pemisahnya. Berikut ini adalah contoh dari konstanta karakter.

Contoh:

'R programming'
## [1] "R programming"
typeof("R programming")
## [1] "character"
a <- "R programming"
typeof(a)
## [1] "character"

Konstanta Built-In R

Konstanta built-in adalah konstanta yang sudah secara default disediakan oleh base R. R memiliki sejumlah konstanta built-in. Berikut ini adalah konstanta built-in yang disediakan oleh R.

  • LETTERS: terdapat 26 huruf kapital dari sistem alfabet Romawi.
  • letters: terdapat 26 huruf kecil dari sistem alfabet Romawi.
  • month.abb: terdapat nama bulan (dalam bahasa Inggris) dengan singkatan 3 huruf.
  • month.name: terdapat nama bulan (dalam bahasa Inggris) tanpa disingkat.
  • pi: adalah konstanta \(\pi\) yaitu rasio keliling lingkaran dengan diameternya.

Contoh:

LETTERS
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z"
letters
##  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
## [20] "t" "u" "v" "w" "x" "y" "z"
month.abb
##  [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
month.name
##  [1] "January"   "February"  "March"     "April"     "May"       "June"     
##  [7] "July"      "August"    "September" "October"   "November"  "December"
pi
## [1] 3.141593

3.3 Operator Dasar R

Operator adalah suatu simbol yang memberitahukan compiler untuk melakukan proses matematis atau logika tertentu. Bahasa R merupakan bahasa komputer yang telah menyediakan operator built-in pada versi base-nya.

Terdapat beberapa jenis operator di dalam R antara lain.

  • Operator aritmatika
  • Operator relasi
  • Operator logika
  • Operator penugasan
  • Operator lainnya (miscellaneous)

Kita akan mengeksplorasi operator tersebut dalam pembahasan berikutnya.

3.4 Operator Aritmatika dengan R

Operator Definisi Penggunaan
+ Operasi penjumlahan dari dua bilangan a + b
- Operasi pengurangan dari dua bilangan a - b
* Operasi perkalian antara dua bilangan a * b
/ Operasi pembagian antara dua bilangan a / b
%% Untuk mencari sisa dari operasi pembagian A %% b
%/% Untuk mencari hasil bagi dari operasi pembagian A %/% B
^ Operasi pemangkatan bilangan a ^ b
%*% Operasi perkalian matriks Matriks A %*% B
%o% Operasi Outer product Matriks A %o% B
%x% Operasi Kronecker product Matriks A %x% B

Beberapa contoh dari masing-masing operator aritmatika ditunjukkan oleh sampel kode R di bawah ini.

# Here we assign the value to a and b variable,
a <- 7.5
b <- 2

# Addition
a+b
## [1] 9.5
# Substraction
a-b
## [1] 5.5
# Multiplication
a*b
## [1] 15
# Division
a/b
## [1] 3.75
# Remainder
a%%b
## [1] 1.5
# Quotient
a%/%b
## [1] 3
# Power
a^b
## [1] 56.25

3.5 Operasi Matriks dengan R

R sangat memfasilitasi penggunanya untuk sistem operasi dasar matriks. Kita bisa melakukan perhitungan penjumlahan, pengurangan, perkalian, pemangkatan, orde, determinan, diagonal, nilai eigen, vektor eige, transpose, invers, dan pemfaktoran matriks dengan berbagai macam metode.

Penjumlahan dan Pengurangan

Operasi matriks paling dasar adalah penjumlahan dan pengurangan. Dalam contoh berikut ini, kita akan membuat matriks persegi dengan menulis kode sebagai berikut.

# Define the matrix A
A <- matrix(c(10, 8, 5, 12), ncol = 2, byrow = TRUE)
A
##      [,1] [,2]
## [1,]   10    8
## [2,]    5   12
# Define the matrix B
B <- matrix(c(5, 3, 15, 6), ncol = 2, byrow = TRUE)
B
##      [,1] [,2]
## [1,]    5    3
## [2,]   15    6
is.matrix(A)
## [1] TRUE
is.vector(A)
## [1] FALSE
is.matrix(B)
## [1] TRUE
is.vector(B)
## [1] FALSE
dim(A)
## [1] 2 2
dim(B)
## [1] 2 2

Matriks A dan B merupakan matriks persegi sehingga mereka tidak termasuk matriks vektor. Keduanya memiliki dimensi yang sama yaitu \(2\times2\). Berikut ini adalah contoh matriks dengan dimensi \(2\times3\). Kita buktikan dengan fungsi dim().

C <- matrix(c(18,18,5,12,10,5), ncol = 3, byrow = TRUE)
C
##      [,1] [,2] [,3]
## [1,]   18   18    5
## [2,]   12   10    5
D <- matrix(c(5,3,15,6,1,8), ncol = 3, byrow = TRUE)
D
##      [,1] [,2] [,3]
## [1,]    5    3   15
## [2,]    6    1    8
dim(C)
## [1] 2 3
dim(D)
## [1] 2 3

Kita bisa melakukan operasi penjumlahan dan pengurangan pada matriks sebagai berikut.

  1. Operator + digunakan untuk menghitung penjumlahan elemen matriks misalkan \(A+B\)

Contoh:

# We have defined matrix A above
A
##      [,1] [,2]
## [1,]   10    8
## [2,]    5   12
# We have defined matrix B above
B
##      [,1] [,2]
## [1,]    5    3
## [2,]   15    6
A+B
##      [,1] [,2]
## [1,]   15   11
## [2,]   20   18
  1. Operator - digunakan untuk menghitung pengurangan elemen matriks misalkan \(A+B\)

Contoh:

# We have defined matrix C above
C
##      [,1] [,2] [,3]
## [1,]   18   18    5
## [2,]   12   10    5
# We have defined matrix D above
D
##      [,1] [,2] [,3]
## [1,]    5    3   15
## [2,]    6    1    8
C-D
##      [,1] [,2] [,3]
## [1,]   13   15  -10
## [2,]    6    9   -3

Ingat! Penjumlahan dan pengurangan harus dilakukan pada matriks-matriks dengan dimensi yang sama. Error (non-conformable array) akan terjadi ketika Anda melakukan A+C atau B-D!

Transpose Matriks

Untuk mencari transpose dari sebuah matriks di R, kita bisa menggunakan fungsi t() sebagai berikut.

# We have defined matrix A above
A
##      [,1] [,2]
## [1,]   10    8
## [2,]    5   12
# We have defined matrix B above
B
##      [,1] [,2]
## [1,]    5    3
## [2,]   15    6

Transpose matriks A

t(A)
##      [,1] [,2]
## [1,]   10    5
## [2,]    8   12

Transpose matriks B

t(B)
##      [,1] [,2]
## [1,]    5   15
## [2,]    3    6

Perkalian Matriks dengan R

Terdapat beberapa cara perkalian matriks antara lain perkalian skalar, perkalian elemen, perkalian matriks, eksterior, dan Kronecker. Marilah kita diskusikan satu per satu dan penerapannya dalam R.

Perkalian Matriks oleh Skalar

Jika kamu ingin mengalikan atau membagi matriks dengan skalar, kita bisa menggunakan operator “*” atau “/” secara berturut-turut.

Berikut ini adalah contoh penerapannya dalam R.

Contoh:

# We have defined matrix A above
A
##      [,1] [,2]
## [1,]   10    8
## [2,]    5   12
2*A
##      [,1] [,2]
## [1,]   20   16
## [2,]   10   24
# We have defined matrix B above
B
##      [,1] [,2]
## [1,]    5    3
## [2,]   15    6
2*B
##      [,1] [,2]
## [1,]   10    6
## [2,]   30   12

Berikut ini adalah contoh pembagian dengan nilai skalar.

Contoh:

A/2
##      [,1] [,2]
## [1,]  5.0    4
## [2,]  2.5    6
B/2
##      [,1] [,2]
## [1,]  2.5  1.5
## [2,]  7.5  3.0

Perkalian Elemen Matriks

Perkalian elemen dilakukan pada elemen yang sama. Oleh karena itu, operasi ini hanya bisa berlaku ketika dimensi matriksnya adalah sama.

Syntax:

\(A*B\)

Contoh:

A*B
##      [,1] [,2]
## [1,]   50   24
## [2,]   75   72

Perkalian Matriks

Perkalian matriks adalah operasi yang paling berguna dalam R. Sebuah matriks R dapat digunakan dengan menggunakan fungsi matrix() dan fungsi ini memiliki argumen input vektor, ncol, byrow, dan dimnames. Dalam R, perkalian matriks (baris x kolom) dapat dilakukan dengan operator %*%.

Contoh:

A <- matrix(c(1, 2, 3, 0, 1, 2, 0, 0, 1), nrow = 3, ncol = 3)
B <- matrix(c(0, 1, 1, 1, 0, 3, 1, 3, 3), nrow = 3, ncol = 3)

print(A)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
print(B)
##      [,1] [,2] [,3]
## [1,]    0    1    1
## [2,]    1    0    3
## [3,]    1    3    3
A%*%B
##      [,1] [,2] [,3]
## [1,]    0    1    1
## [2,]    1    2    5
## [3,]    3    6   12

Ingat perkalian matriks dengan operator %*% hanya bisa dilakukan ketika jumlah baris sama dengan kolom.

C <- matrix(c(1, 2, 3, 0, 1, 2), nrow = 3, ncol = 2)
D <- matrix(c(0, 1, 1, 1, 0, 3), nrow = 2, ncol = 3)

print(C)
##      [,1] [,2]
## [1,]    1    0
## [2,]    2    1
## [3,]    3    2
print(D)
##      [,1] [,2] [,3]
## [1,]    0    1    0
## [2,]    1    1    3
C%*%D
##      [,1] [,2] [,3]
## [1,]    0    1    0
## [2,]    1    3    3
## [3,]    2    5    6

Perkalian Silang Matriks (Cross Product)

Jika kamu akan menghitung perkalian matriks dan transpose matriks atau yang lain, kita dapat menggunakan sintaks t(A) %*% B atau A %*% t(b). Meskipun demikian, dalam R, kita sudah difasilitasi dengan fungsi crossprod dan tcrossprod.

Contoh:

t(A)%*%B
##      [,1] [,2] [,3]
## [1,]    5   10   16
## [2,]    3    6    9
## [3,]    1    3    3
crossprod(A,B)
##      [,1] [,2] [,3]
## [1,]    5   10   16
## [2,]    3    6    9
## [3,]    1    3    3
A%*%t(B)
##      [,1] [,2] [,3]
## [1,]    0    1    1
## [2,]    1    2    5
## [3,]    3    6   12
tcrossprod(A,B)
##      [,1] [,2] [,3]
## [1,]    0    1    1
## [2,]    1    2    5
## [3,]    3    6   12

Perkalian Outer (Exterior)

Sama seperti perkalian matriks sebelumnya (baris x kolom), dalam R, kita juga dapat menghitung perkalian eksterior dari 2 matriks dengan operator %o%. Operator ini merupakan kode singkat daripada fungsi outer default.

Syntax:

A %o% B

Sintaks R di atas ekuivalen dengan fungsi berikut.

outer(A, B, FUN = "*")

Contoh:

A
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
B
##      [,1] [,2] [,3]
## [1,]    0    1    1
## [2,]    1    0    3
## [3,]    1    3    3
A%o%B
## , , 1, 1
## 
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
## 
## , , 2, 1
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 3, 1
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 1, 2
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 2, 2
## 
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
## 
## , , 3, 2
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3
## 
## , , 1, 3
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 2, 3
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3
## 
## , , 3, 3
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3
outer(A, B, FUN = "*")
## , , 1, 1
## 
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
## 
## , , 2, 1
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 3, 1
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 1, 2
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 2, 2
## 
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
## 
## , , 3, 2
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3
## 
## , , 1, 3
## 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    2    1    0
## [3,]    3    2    1
## 
## , , 2, 3
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3
## 
## , , 3, 3
## 
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    6    3    0
## [3,]    9    6    3

Perkalian Kronecker

Perkalian Kronecker dari dua matriks A dan B dilakukan dengan sintaks A %x% B.

Syntax:

A %x% B

Contoh:

A %x% B
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
##  [1,]    0    1    1    0    0    0    0    0    0
##  [2,]    1    0    3    0    0    0    0    0    0
##  [3,]    1    3    3    0    0    0    0    0    0
##  [4,]    0    2    2    0    1    1    0    0    0
##  [5,]    2    0    6    1    0    3    0    0    0
##  [6,]    2    6    6    1    3    3    0    0    0
##  [7,]    0    3    3    0    2    2    0    1    1
##  [8,]    3    0    9    2    0    6    1    0    3
##  [9,]    3    9    9    2    6    6    1    3    3

Pemangkatan Matriks dengan R

Untuk mengoperasikan pemangkatan matriks, base R tidak menyediakan fungsi built-in seperti operasi dasar kita sebelumnya. Dalam operasi ini, kita membutuhkan “package” lain yang harus kita install terlebih dahulu. Package yang dibutuhkan untuk operasi pemangkatan matriks adalah “expm”. Melalui package “expm”, kita bisa melakukan operasi pemangkatan matriks dengan operator %^%. Install package “expm” dengan sintaks berikut ini atau sesuai cara yang pernah kita pelajari di 1.

install.packages("expm")

Setelah proses installasi selesai jalankan sintaks berikut untuk mengaktifkan package “expm” pada lingkungan kerja kita.

library(expm)
## Loading required package: Matrix
## 
## Attaching package: 'expm'
## The following object is masked from 'package:Matrix':
## 
##     expm

Mari kita membuat sebuah matriks dengan menggunakan package “expm”. Tulis kode R di bawah ini pada RStudio.

Contoh:

# Create a matrix with numbers between 1 and 25
Matrix_1 <- matrix(1:25, nrow = 5)
Matrix_1
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    6   11   16   21
## [2,]    2    7   12   17   22
## [3,]    3    8   13   18   23
## [4,]    4    9   14   19   24
## [5,]    5   10   15   20   25
# Create a random numbers from a number set (1 to 12) for a 6 x 6 matrix
Matrix_2 <- matrix(sample(1:12, 36, replace=TRUE), nrow=6)
Matrix_2
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]   12   10    3    8    7    6
## [2,]    7    5    7    4    8    7
## [3,]    7    4    6    7   11   11
## [4,]    2    7    1    4    8    5
## [5,]   10   10    8    2   12    8
## [6,]    7    1   12    8    5    1

Hasil di atas merupakan bilangan acak. Jika kamu menemukan hasil yang berbeda, itu tidak apa-apa dan wajar.

Berikut ini adalah contoh pemangkatan matriks.

Contoh:

Matrix_1 %^% Matrix_1
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    6   11   16   21
## [2,]    2    7   12   17   22
## [3,]    3    8   13   18   23
## [4,]    4    9   14   19   24
## [5,]    5   10   15   20   25
Matrix_2 %^% Matrix_2
##              [,1]         [,2]         [,3]         [,4]         [,5]
## [1,] 4.972844e+18 4.073704e+18 3.934561e+18 3.405369e+18 5.413345e+18
## [2,] 4.285893e+18 3.510961e+18 3.391039e+18 2.934950e+18 4.665543e+18
## [3,] 5.066227e+18 4.150203e+18 4.008446e+18 3.469317e+18 5.515000e+18
## [4,] 2.968301e+18 2.431602e+18 2.348547e+18 2.032672e+18 3.231237e+18
## [5,] 5.802532e+18 4.753376e+18 4.591017e+18 3.973534e+18 6.316528e+18
## [6,] 3.797284e+18 3.110697e+18 3.004447e+18 2.600354e+18 4.133653e+18
##              [,6]
## [1,] 4.029056e+18
## [2,] 3.472481e+18
## [3,] 4.104716e+18
## [4,] 2.404952e+18
## [5,] 4.701279e+18
## [6,] 3.076604e+18

Determinan Matriks dengan R

Determinan sebuah matriks A yang biasanya disimbolkan dengan garis tegak seperti \(|A|\) adalah nilai skalar yang menjelaskan sifat tertentu dari sebuah matriks. Dalam R, kita dapat menggunakan fungsi det() untuk menentukan determinan maktriks.

Syntax:

det(x, ...)

Parameter x adalah matriks yang ingin kita cari determinannya.

Contoh:

x <- matrix(c(3, 2, 6, -1, 7, 3, 2, 6, -1), 3, 3)
x
##      [,1] [,2] [,3]
## [1,]    3   -1    2
## [2,]    2    7    6
## [3,]    6    3   -1
det(x)
## [1] -185

Contoh lain dengan menggunakan transpose.

y <- t(x)
y
##      [,1] [,2] [,3]
## [1,]    3    2    6
## [2,]   -1    7    3
## [3,]    2    6   -1
det(y)
## [1] -185

Determinan dari transpose matriks menunjukkan nilai yang sama.

Invers Matriks dengan R

Invers merupakan operasi matriks yang sering digunakan dalam perhitungan matematika. Kita bisa memecahkan persamaan linear dengan mengoperasikan invers matriks. Matriks invers adalah sebuah matrik, ketika kita kalikan dengan matriks asalnya, menghasilkan matriks identitas.

Mencari invers sebuah matriks seringkali membutuhkan proses yang membutuhkan kemampuan aljabar. Kita bissa mencari invers matriks dari tipe persegi dan nilai determinannya tidak sama dengan nol. Dalam R, kita bisa mencari invers sebuah matriks dengan fungsi solve().

Syntax:

solve(x)

Contoh:

# here we create 3 different vectors
# using combine method.
a1 <- c(2, 2, 3)
a2 <- c(0, 1, 1)
a3 <- c(5, 2, 4)

# bind the three vectors into a matrix
# using rbind() which is basically "row-wise binding".
A <- rbind(a1, a2, a3)
A
##    [,1] [,2] [,3]
## a1    2    2    3
## a2    0    1    1
## a3    5    2    4
solve(A)
##      a1 a2 a3
## [1,] -2  2  1
## [2,] -5  7  2
## [3,]  5 -6 -2
# This a identity matrix

A %*% solve(A)
##    a1 a2 a3
## a1  1  0  0
## a2  0  1  0
## a3  0  0  1

3.6 Operator Relasi dengan R

Operator relasi mensimulasikan operasi pengambilan keputusan elemen demi elemen berdasarkan operator spesifik di antara keputusan yang sedang dihubungkan, yang kemudian kita evaluasi pada nilai Boolean benar dan salah. Bilangan inteeger tidak nol adalah nilai TRUE, apakah bilangan kompleks atau real. Operator relasi berfungsi untuk menentukan hubungan antara kedua nilai (operand) yang sedang dibandingkan. Berikut ini adalah enam operasi relasi yang didukung oleh bahasa pemrograman R. Outputnya adalah nilai Boolean (TRUE/ FALSE) untuk semua operator ini di dalam R.

Operator Definisi Penggunaan
< Lebih kecil (kurang) dari a < b
> Lebih besar dari a > b
== Sama dengan a == b
<= Kurang dari sama dengan a <= b
>= Kurang dari sama dengan A >= b
!= Tidak sama dengan A != B

Operator relasi melakukan perbandingan nilai dari elemen sebuah operand. Operator relasi mengembalikan nilai Boolean TRUE jika operand pertama memenuhi relasi yang sesuai dengan operator terhadap operand kedua. Nilai TRUE selalu dianggap lebih tinggi daripada FALSE.

Kurang Dari (<) dan Lebih Dari (>)

Sesuai dengan nama operatornya sepertinya semua dari kita sudah mengetahui bagaimana operator ini bekerja untuk bilangan. Untuk objek karakter bisa juga kita relasikan dimana R menggunakan urutan abjad dari alfabet untuk membandingkan ini.

Contoh:

33 < 55
## [1] TRUE
33 > 55
## [1] FALSE
"R" > "Phyton"
## [1] TRUE
"PHP" < "HTML"
## [1] FALSE
list_1 <- c(TRUE, 0.1, "HTML")
list_2 <- c(0, 0.1, "PHP")
list_1 < list_2
## [1] FALSE FALSE  TRUE
list_1 <- c(TRUE, 0.1, "HTML")
list_2 <- c(0, 0.1, "PHP")
list_1 > list_2
## [1]  TRUE FALSE FALSE

Kurang Dari Sama Dengan (<=)

Operator ini untuk membandingkan dua objek apakah objek pertama kurang darinya ataukah sama dengan objek kedua.

Contoh:

list_1 <- c(TRUE, 0.1, "HTML")
list_2 <- c(0, 0.1, "PHP")
list_1 <= list_2
## [1] FALSE  TRUE  TRUE

Lebih Dari Sama Dengan (<=)

Operator ini untuk membandingkan dua objek apakah objek pertama lebih darinya ataukah sama dengan objek kedua.

Contoh:

list_1 <- c(TRUE, 0.1, "HTML")
list_2 <- c(0, 0.1, "PHP")
list_1 >= list_2
## [1]  TRUE  TRUE FALSE

Tidak Sama Dengan (!=)

Operator ini merupakan lawan dari operator sama dengan (=).

Contoh:

list_1 <- c(TRUE, 0.1, "HTML")
list_2 <- c(0, 0.1, "PHP")
list_1 != list_2
## [1]  TRUE FALSE  TRUE

Contoh program sederhana untuk memahami semua operator relasi.

# Whole program to understand
# the use of Relational operators
vec1 <- c(1, 2)
vec2 <- c(4, 3)

# performing operations on Operands
cat("First value less than Second value :",vec1<vec2, "\n")
## First value less than Second value : TRUE TRUE
cat("First value less than equal to Second value :",vec1<=vec2, "\n")
## First value less than equal to Second value : TRUE TRUE
cat ("First value greater than Second value :",vec1>vec2, "\n")
## First value greater than Second value : FALSE FALSE
cat("First value greater than equal to Second value :",vec1>=vec2, "\n")
## First value greater than equal to Second value : FALSE FALSE
cat("First value not equal to Second value :",vec1!=vec2, "\n")
## First value not equal to Second value : TRUE TRUE

3.7 Operasi Penugasan R

Operator penugasan digunakan untuk mendefinisikan suatu nilai baru pada suatu variabel, properti, event, atau elemen indeks pada bahasa pemrograman R. Objek bisa berupa integer, vektor, atau fungsi. Nilai-nilai ini kemudian disimpan oleh nama variabel yang didefinisikan. Terdapat beberapa operator penugasan antara lain:

  • +-
  • -=
  • *=
  • /=
  • %=
  • &=
  • |=
  • ^=
  • <<= dan >>=

Operator <- dan = dapat digunakan mana saja untuk mendefinisikan variabel di lingkungan pemrograman R. Operator <<- digunakan untuk mendefinisikan variabel di lingkungan parent (bukan pendefinisian global). Penugasan arah ke kiri (<- atau <<- atau =) paling sering digunakan oleh programmer R.

Contoh:

val_1 = c("ABC", TRUE)
val_2 <<- c("ABC", TRUE)
val_3 <- c("abc", TRUE)
val_1
## [1] "ABC"  "TRUE"
val_2
## [1] "ABC"  "TRUE"
val_3
## [1] "abc"  "TRUE"

3.8 Operator Logika R

Operator logika untuk melakukan operasi logika matematika dan aljabar Boolean seperti pada gerbang logika elektronika digital. Operator logika pada R hanya bisa digunakan untuk tipe data logical, numeric, dan complex atau vektor dari tipe-tipe data ini. Pada dasarnya, operator logika R terbagi menjadi berikut ini.

  • Operator logika
  • Operator AND &
  • Operator OR |
  • Operator NOT !

Tabel di bawah ini menjelaskan beberapa operator logika yang didukung oleh pemrograman R.

Operator Definisi Penggunaan
& Fungsinya seperti gerbang logika AND a & b
| Fungsinya seperti gerbang logika OR a | b
! Fungsinya seperti gerbang logika NOT !a
&& Fungsinya sama seperti operator & a && b
|| Fungsinya sama seperti operator | A || b

Contoh:

# Operator AND (&)

TRUE & TRUE
## [1] TRUE
TRUE & FALSE
## [1] FALSE
FALSE & TRUE
## [1] FALSE
FALSE & FALSE
## [1] FALSE
# Operator OR (|)

TRUE | TRUE
## [1] TRUE
TRUE | FALSE
## [1] TRUE
FALSE | TRUE
## [1] TRUE
FALSE | FALSE
## [1] FALSE
# Operator NOT (!)

!TRUE
## [1] FALSE
!FALSE
## [1] TRUE
# Operator AND (&&)

TRUE && TRUE
## [1] TRUE
TRUE && FALSE
## [1] FALSE
FALSE && TRUE
## [1] FALSE
FALSE && FALSE
## [1] FALSE
# Operator OR (||)

TRUE | TRUE
## [1] TRUE
TRUE | FALSE
## [1] TRUE
FALSE | TRUE
## [1] TRUE
FALSE | FALSE
## [1] FALSE

Selain menggunakan nilai Boolean (TRUE atau FALSE), kita bisa menggunakan hasil perbandingan. Misalkan kita memiliki variabel x yang bernilai sama dengan 7. Untuk mengecek apakah x lebih besar dari 4 dan kurang dari 20, kita bisa menggunakan sintaks x lebih besar dari 4 DAN kurang dari 20.

Contoh:

x <- 7
x > 4 & x < 20
## [1] TRUE

Bagian pertama x < 4 akan mengecek apakah angka 7 lebih besar dari 4 dan hasilnya adalah TRUE. Lalu bagian kedua x < 20 akan mengecek apakah angka 7 lebih kecil daripada 20 dan hasilnya adalah TRUE. Operator AND (&) antara TRUE dan TRUE menghasilkan TRUE, artinya angka 4 berada di antara bilangan 4 dan 20.

3.9 Operator R Lainnya

Beberapa operator di bawah ini tidak termasuk ke dalam operator yang telah kita bahas di atas. Operator ini masih sering kita gunakan dalam R terutama dalam manipulasi data.

Operator Definisi Penggunaan
: Membuat himpunan bilangan dari kiri ke kanan a : b
%in% Mengidentifikasi apakah suatu objek a termasuk dalam vektor b a %in% b
%*% Fungsinya untuk perkalian matriks/ vektor a %*% b

Contoh:

a <- 25:21
a
## [1] 25 24 23 22 21
a <-  c(15, 17, 16)
b <- 27

b %in% a
## [1] FALSE
M = matrix(c(1,2,3,4), 2, 2, TRUE)
M
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
M %*% t(M)
##      [,1] [,2]
## [1,]    5   11
## [2,]   11   25

3.10 Tugas (Project-Based Learning)

Kerjakanlah tugas berikut secara individu dan presentasikan hasilnya di akhir pembelajaran!

  1. Buatlah sebuah file R Notebook (.Rmd) untuk mengaplikasikan contoh-contoh yang telah didemonstrasikan pada Bab 3 ini. Gunakan nama variabel, operator, dan angka yang berbeda sesuai dengan kreativitas Anda!

  2. Selain bereksperimen dengan kode R. Buatlah interpretasi terhadap setiap kode seolah-olah Anda menulis catatan pada R Notebook. Gunakan pemikiran sendiri untuk membuatnya. Presentasikan hasil Anda dan tugas .Rmd ini dikumpulkan pada Google Classroom dalam format .Rmd!

3.11 Rubrik Penilaian Pembelajaran

Nama Mahasiswa :
NIM :

Aspek 1 2 3 4
Aktivitas pemrograman
Kelancaran tugas
Kualitas pekerjaan
Keterbukaan masukan

Definisi

  • Aktivitas pemrograman mengukur keterlibatan mahasiswa dalam proses mengikuti pelajaran.
  • Kelancaran tugas mengukur sejauh mana mahasiswa mampu mengikuti prosedur pemrograman yang telah dicontohkan dalam buku ini.
  • Kualitas pekerjaan mengukur kemampuan mahasiswa dalam menggunakan komputernya untuk melakukan pemrograman dengan R.
  • Keterbukaan masukan mengukur sejauh mana kualitas presentasi mahasiswa dan menerima masukan dan tanggapan dari temannya yang lain.

3.12 Penutup

Dalam bab ini, kita telah mempelajari cara untuk mendefinisikan variabel, tipe-tipe dari variabel R, dan bagaimana menggunakan variabel tersebut dalam sebuah aktivitas pemrograman. Kita juga telah banyak mengeksplorasi operasi dasar matematika terutama operasi matriks yang akan sering kita gunakan dalam memecahkan masalah pemrograman pada bab-bab berikutnya.