> For the complete documentation index, see [llms.txt](https://seri-belajar-pemrograman.rijalasepnugroho.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seri-belajar-pemrograman.rijalasepnugroho.com/javascript/operator.md).

# Operator

## Operator Aritmatika

Aritmatika adalah salah satu hal penting dalam bahasa pemrograman. Di javascript ada 7 operator aritmatika meliputi :

* Penambahan  (+)&#x20;
* Pengurangan (-)&#x20;
* Perkalian (\*)
* Pembagian (/)&#x20;
* Sisa bagi (%)&#x20;
* Increment (++)&#x20;
* Decrement (- -)

```markup
<h1>Operator Aritmatika</h1>

<script>
  let a = 10;
  let b = 5;
  console.log("a + b = ", a + b);
  console.log("a - b = ", a - b);
  console.log("a * b = ", a * b);
  console.log("a / b = ", a / b);
  console.log("a % b = ", a % b);
  console.log("++10 = b = ", ++a + b, " | ", a);
  
  a = 10;
  console.log("--a + b = ", --a + b, " | ", a);
  
  a = 10;
  console.log("a++ + b = ", a++ + b, " | ", a);
  
  a = 10;
  console.log("a-- + b = ", a-- + b, " | ", a);
</script>
```

### &#x20;Derajat Operator

Seperti konsep matematika, operator aritmatika juga mempunyai derajat sebagia berikut:

1. Prefix Increment, ++x
2. Prefix Decrement, — x
3. Perkalian, \*
4. Pembagian, /
5. Modulus, %
6. Penjumlahan, +
7. Pengurangan, -
8. Postfix Increment, x++
9. Postfix Decrement, x —

## Operator Perbandingan

Ada delapan operator perbandingan di JavaScript, yaitu:

* Equal value, ==
* Equal value and type, ===
* Not equal, !=
* Not equal value and type, !==
* Greater than, >
* Less than, <
* Greater than or equal, >=
* Less than or equal, <=

```markup
<h1>Operator Perbandingan</h1>

<script>
  let a = 10;
  let b = 5;
  console.log("a >= b = ", a >= b);
  console.log("a <= b = ", a <= b);
  console.log("a != b = ", a != b);
  console.log("a == b = ", a == b);
  console.log("a == '10' = ", a == "10");
  console.log("a === '10' = ", a === "10");
  console.log("a === 10 = ", a === 10);
  console.log("a != '5' = ", a != "5");
  console.log("a !== '5' = ", a !== "5");
  console.log("a != '10' = ", a != "10");
  console.log("a !== '10' = ", a !== "10");
</script>
```

## Operator Logika <a href="#id-60b6" id="id-60b6"></a>

Terdapat tiga operator yang termasuk operator logika, yaitu:

* AND, &&
* OR, ||
* NOT, !

### Operator AND

| Ekspresi 1 | Eskpresi 2 | Hasil |
| ---------- | ---------- | ----- |
| true       | true       | true  |
| true       | false      | false |
| false      | true       | false |
| false      | false      | false |

Hasil operator AND akan TRUE jika kedua ekspresi bernilai TRUE

### Operator OR

| Ekspresi 1 | Eskpresi 2 | Hasil |
| ---------- | ---------- | ----- |
| true       | true       | true  |
| true       | false      | true  |
| false      | true       | true  |
| false      | false      | false |

Hasil operartor OR akan TRUE jika salah satu ekspresi bernilai TRUE

### Operator NOT

| Ekspresi 1 | Hasil |
| ---------- | ----- |
| true       | false |
| false      | true  |

Hasil operator NOT merupakan kebalikan dari ekspresi.

operator logika dibaca dari sebelah kiri, sehingga jika ekspresi pertama dari operator AND  bernilai false, maka ekspresi kedua tidak perlu lagi dievaluasi. Begitu juga jika ekspresi pertama pada operator OR bernilai true, maka ekspresi kedua sudah tidak perlu dievaluasi.

* false && (any expression)
* true || (any expression)

```markup
<h1>Operator Logika</h1>

<script>
  console.log("true && true = ", true && true );
  console.log("true && false = ", true && false );
  console.log("false && true = ", false && true );
  console.log("false && false = ", false && false );
  
  
  console.log("true || true = ", true || true );
  console.log("true || false = ", true || false );
  console.log("false || true = ", false || true );
  console.log("false || false = ", false || false );
  
  console.log("!true = ", !true);
  console.log("!false = ", !false);
  
  console.log("(10 >= 5)  && (10 == '10') = ", (10 >= 5)  && (10 == '10'));
  var a;
  console.log("false && a = ", false && a);
  console.log("true || a = ", true || a);
</script>
```
