Artikel ini akan membahas tentang bagaimana cara mengoperasikan operasi logika menggunakan R Markdown di aplikasi R Studio.
Sebelum membahas lebih lanjut tentang kita harus mengetahui dulu pengertian dari logika itu sendiri. Logika adalah sebuah istilah yang berhubungan dengan pikiran manusia. Logika membuat manusia dapat berpikir secara sejajar, kritis, teratur, dan tepat.Logika dalam ilmu matematika atau biasa disebut logika matematika adalah aturan berpikir atau landasan tentang bagaimana cara kita mengambil kesimpulan. Logika juga dipakai tidak hanya pada bidang matematika, bidang-bidang yang lain seperti pemrograman juga memakai logika dalam penyelesainnya. Contohnya, Ketika membahas struktur kendali pada suatu bahasa pemrograman pasti akan membahas tentang operator logika atau logical operator. Nilai dari logika akan selalu bernilai TRUE atau FALSE.
Operator | Logika |
---|---|
& | Dan (AND) |
l | “Atau (OR)” |
! | Negasi (NOT) |
== | Sama dengan (EQUAL) |
!= | Tidak sama dengan (NOT EQUAL) |
%in% | Ada diantara (IN) |
< | Lebih kecil dari (LESS) |
> | Lebih besar dari (GREATER) |
<= | Lebih kecil dari atau sama dengan (LESS OR EQUAL) |
>= | Lebih besar dari atau sama dengan (GREATER OR EQUAL) |
&& | Dan (AND) (vector) |
ll | Atau (OR) (vector) |
Mari kita bahas satu per satu simbol diatas.
Operator & dan && dalam logika matematika disebut konjungsi. KOnjungsi adalah suatu proposisi majemuk yang dihubungkan oleh kata hubung ‘dan’. Perangkai ini dilambangkan sebagai p && q, yang berarti p dan q.
Suatu konjungsi akan bernilai benar (TRUE) jika **kedua pernyataan (p dan q) bernilai benar (TRUE)**.
Perbedaan antara & dan && yaitu :
1. & Operator adalah operator logis dan juga bitwise, karena beroperasi pada boolean maupun data biner, sedangkan operator && hanyalah operator logis karena hanya beroperasi pada tipe data boolean.
2. Operator & mengevaluasi kedua sisi ekspresi untuk mendapatkan hasil akhir sedangkan, operator && hanya mengevaluasi sisi kiri ekspresi & jika ternyata salah, ia bahkan tidak mengevaluasi sisi kanan ekspresi.
Contoh :
a <- c(TRUE, TRUE, FALSE, FALSE)
a
## [1] TRUE TRUE FALSE FALSE
b <- c(TRUE, FALSE, TRUE, FALSE)
b
## [1] TRUE FALSE TRUE FALSE
Dari program di atas kita sudah mempunyai dua buah vector, a dan b. Dua buah vector ini masing-masing berisi empat elemen berupa nilai logical (TRUE atau FALSE). Jika kita gunakan operator & pada a & b maka hasilnya adalah evaluasi dari masing-masing elemen sehingga hasilnya akan ada empat elemen.
a & b
## [1] TRUE FALSE FALSE FALSE
Berbeda halnya ketika kita gunakan operator &&. Ketika kita gunakan operator && pada a && b maka yang akan dievaluasi adalah elemen pertama dari a dan b. Elemen pertama dari a adalah TRUE dan elemen pertama dari b adalah TRUE juga. Maka hasil dari a && b adalah TRUE. Perhatikan bahwa karena hanya elemen pertama dari masing-masing vector yang dievaluasi sehingga hasilnya adalah sebuah vector dengan satu elemen.
a && b
## [1] TRUE
Agar lebih paham dapt dilihat dari contoh di bawah ini.
c(TRUE, FALSE) && c(FALSE, TRUE)
## [1] FALSE
c(TRUE, FALSE) && TRUE
## [1] TRUE
Operator | dan || dalam logika matematika disebut disjungsi. Disjungsi adalah proposisi majemuk yang dihubungkan oleh kata hubung ‘atau’ ditulis p || q, yang berarti p atau q.
Suatu disjungsi akan bernilai benar (TRUE) jika **salah satu pernyataan bernilai benar atau kedua pernyataan (p dan q) bernilai benar.**
Perbedaan | dan || hampir sama dengan perbdaan & dan &&.
Contoh :
e <- c(TRUE, TRUE, FALSE, FALSE)
e
## [1] TRUE TRUE FALSE FALSE
f <- c(TRUE, FALSE, TRUE, FALSE)
f
## [1] TRUE FALSE TRUE FALSE
Dari program di atas kita sudah mempunyai dua buah vector, e dan f. Dua buah vector ini masing-masing berisi empat elemen berupa nilai logical (TRUE atau FALSE). Jika kita gunakan operator | pada e & f maka hasilnya adalah evaluasi dari masing-masing elemen sehingga hasilnya akan ada empat elemen.
e | f
## [1] TRUE TRUE TRUE FALSE
Berbeda halnya ketika kita gunakan operator ||. Ketika kita gunakan operator || pada e || f maka yang akan dievaluasi adalah elemen pertama dari e dan f. Elemen pertama dari e adalah TRUE dan elemen pertama dari f adalah TRUE juga. Maka hasil dari e || f adalah TRUE. Perhatikan bahwa karena hanya elemen pertama dari masing-masing vector yang dievaluasi sehingga hasilnya adalah sebuah vector dengan satu elemen.
e || f
## [1] TRUE
Agar lebih paham dapt dilihat dari contoh di bawah ini.
c(FALSE, FALSE) || c(FALSE, TRUE)
## [1] FALSE
c(TRUE, FALSE) || TRUE
## [1] TRUE
Operator ! dalam logika matematika disebut Ingkaran atau negasi. Ingkaran atau negasi adalah pernyataan yang memiliki nilai kebenaran yang berlawanan dari pernyataan atau proposisi semula.
**Apabila pernyataan awal bernilai benar, maka pernyataan barunya bernilai salah. Sebaliknya, jika pernyataan semula bernilai salah, maka pernyataan barunya bernilai benar.** Misal pernyataan p bernilai benar (TRUE), maka !p bernilai salah (FALSE) begitupun sebaliknya.
Contoh Soal :
n = TRUE;
!n
## [1] FALSE
Hasil tersebut bernilai salah (FALSE) karena pernyataan sebelumnya bernilai benar (TRUE). Contoh Soal menggunakan vector atau character :
d <- c(TRUE, FALSE, TRUE, FALSE)
!d
## [1] FALSE TRUE FALSE TRUE
Operator == (EQUAL) berarti sama dengan ditulis p == q dibaca p ‘sama dengan’ q.
Maksudnya apabila p bernilai benar dan q bernilai benar maka p == q bernilai benar (TRUE) juga. Namun, apabila p bernilai salah dan q bernilai benar maka p == q benilai salah (FALSE). **Dapat disimpulkan bahwa operator == bernilai benar (TRUE) apabila kedua pernyataan bernilai sama**
Contoh Soal :
g = 5; h = 5
g == h
## [1] TRUE
Hasil tersebut bernilai benar (TRUE) karena nilai g sama dengan h yaitu 5 Contoh Soal menggunakan vector atau character :
g <- c(TRUE, FALSE, TRUE, FALSE)
g
## [1] TRUE FALSE TRUE FALSE
i <- c(TRUE, TRUE, FALSE, FALSE)
i
## [1] TRUE TRUE FALSE FALSE
g == i
## [1] TRUE FALSE FALSE TRUE
Operator != (NOT EQUAL) berarti tidak sama dengan ditulis p != q dibaca p ‘tidak sama dengan’ q.
Maksudnya apabila p bernilai benar dan q bernilai salah maka p != q bernilai benar (TRUE). Namun apabila p bernilai benar dan q juga bernilai benar maka p != q bernilai salah (FALSE). **Dapat disimpulkan bahwa operator != bernilai benar (TRUE) apabila kedua pernyataan mepunya nilai yang berbeda**
Contoh Soal :
j = 5; k = 5
j != k
## [1] FALSE
Contoh Soal menggunakan vector atau character :
j <- c(TRUE, FALSE, TRUE, FALSE)
j
## [1] TRUE FALSE TRUE FALSE
k <- c(TRUE, TRUE, FALSE, FALSE)
k
## [1] TRUE TRUE FALSE FALSE
j != k
## [1] FALSE TRUE TRUE FALSE
Operator < dan <= hampir mirip yaitu mempunyai arti lebih kecil dari.
Misal p = 5 dan q = 9, maka p < q bernilai benar (TRUE) begitupun dengan p <= q maka pernyataan bernilai benar (TRUE). **Dapat disimpulkan pada operator < apabila pernyataan pertama lebih kecil dari pernyataan kedua maka pernyataan bernilai benar (TRUE), sedangkan pada operator <= apabila pernyataan pertama lebih kecil atau sama dengan pernyataan kedua maka pernyataan bernilai benar (TRUE).**
Catatan!!! Untuk operator ini biasanya pernyataan dinyatakan dengan angka
Perbedaanya yaitu operator <= ada tanda ‘=’ maksudnya menyatakan nilai lebih kecil atau sama dengan. Contohnya sebagai berikut.
Misal p = 5 dan q = 5
Pada operator < dapat ditulis p < q maka nilai bernilai salah (FALSE) karena nilai p == q. Namun, pada operator p <= q maka nilai yang dihasilkan benar (TRUE) karena p == q.
Contoh Soal ;
9 < 11 # 9 lebih kecil dari 11
## [1] TRUE
10 <= 2 # 10 lebih kecil dari 2
## [1] FALSE
Ketika sebuah nilai numerik dibandingkan dengan sebuah vector numerik yang mempunyai length() lebih dari 1, maka nilai numerik di sebelah kiri operator akan dievaluasi terhadap masing-masing nilai pada vector tersebut. Misalnya contoh berikut ini.
4 < 3 : 6
## [1] FALSE FALSE TRUE TRUE
Nilai 4 disebelah kiri operator dievaluasi terhadap masing-masing elemen pada vector sebelah kanan. Maka dari itu karena 4 lebih kecil dari 5 dan 6 hasilnya adalah TRUE. Selanjutnya karena 4 tidak lebih kecil dari 3 dan 4 maka sisanya bernilai FALSE. Contoh lain :
5 <= 1 : 3
## [1] FALSE FALSE FALSE
Operator > dan >= juga memiliki arti yang hampir mirip yang berarti leih besar dari. Perbedaanya sama seperti operator diatas yaitu operator >= ada tanda ‘=’ maksudnya menyatakan nilai lebih besar atau sama dengan. Penjelasaanya yaitu sebagai berikut.
Misal p = 9 dan q = 6, maka p > q bernilai benar (TRUE) begitupun dengan p >= q maka pernyataan bernilai benar (TRUE). **Dapat disimpulkan pada operator > apabila pernyataan pertama lebih besar dari pernyataan kedua maka pernyataan bernilai benar (TRUE), sedangkan pada operator >= apabila pernyataan pertama lebih besar atau sama dengan pernyataan kedua maka pernyataan bernilai benar (TRUE).**
Catatan!!! Untuk operator ini biasanya pernyataan dinyatakan dengan angka
Contoh Soal ;
10 > 11 # 10 lebih besar dari 11
## [1] FALSE
10 >= 2 # 10 lebih besar dari 2
## [1] TRUE
Ketika sebuah nilai numerik dibandingkan dengan sebuah vector numerik yang mempunyai length() lebih dari 1, maka nilai numerik di sebelah kiri operator akan dievaluasi terhadap masing-masing nilai pada vector tersebut. Misalnya contoh berikut ini.
2 > 1 : 3
## [1] TRUE FALSE FALSE
Nilai 4 disebelah kiri operator dievaluasi terhadap masing-masing elemen pada vector sebelah kanan. Maka dari itu karena 2 lebih besar dari 1 hasilnya adalah TRUE. Selanjutnya karena 2 tidak lebih besar dari 2 dan 3 maka sisanya bernilai FALSE. Contoh lain :
6 >= 1 : 3
## [1] TRUE TRUE TRUE
OPerator %n% (IN) digunakan untuk mengetahui apakah suatu nilai yang ada dalam sebuah vector. Misalnya contoh berikut ini.
2 %in% 1:5 #2 berada dalam vektor 1 - 5
## [1] TRUE
Program di atas artinya untuk mengetahui apakah nilai numerik 2 ada diantara vector numeric yang nilainya 1 sampai dengan 5. Karena nilai 2 ada diantara 1 sampai dengan 5 maka nilai dari program di atas adalah TRUE. Selain contoh di atas, kita juga bisa menggunakan simbol di atas untuk character.
"a" %in% c("ab", "ac", "bc", "a", "b", "c")
## [1] TRUE
Catatan! Untuk menulis character atau membuat sebuah vector adalah dengan menggunakan fungsi c().
Program di atas mencari nilai character “c” yang sama persis diantara nilai vector c(“ab”, “ac”, “bc”, “a”, “b”, “c”). Maka yang dianggap sama adalah elemen kedua dari vector tersebut. Karena “c” tidak sama dengan “bc” atau “ac”.
Contoh :
"a" %in% c("ab", "ac", "bc", "b", "c")
## [1] FALSE
Pernyataan tersebut salah (FALSE) karena nilai “a” tidak ada dalam vektor atau character c(“ab”, “ac”, “bc”, “b”, “c”)
P | Q | P & Q | P | Q | !P | P == Q |
---|---|---|---|---|---|---|
TRUE | TRUE | TRUE | TRUE | FALSE | TRUE | FALSE |
TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE |
FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE |
FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE |