A.8. Operator
Chapter ini membahas mengenai operator pada pemrograman rust.
A.8.1. Operator aritmatika
Berikut merupakan list operator untuk operasi aritmatika beserta contoh penerapannya di rust.
| Simbol | Kegunaan |
|---|---|
+ | penambahan |
- | pengurangan |
* | perkalian |
/ | pembagian |
% | modulus atau sisa hasil bagi |
let (num1, num2) = (12, 4);
let value_addition = num1 + num2;
println!("{} + {} = {}", num1, num2, value_addition);
// output ➜ 12 + 4 = 16
let value_sub = num1 - num2;
println!("{} - {} = {}", num1, num2, value_sub);
// output ➜ 12 - 4 = 8
let value_mut = num1 * num2;
println!("{} * {} = {}", num1, num2, value_mut);
// output ➜ 12 * 4 = 48
let value_div = num1 / num2;
println!("{} / {} = {}", num1, num2, value_div);
// output ➜ 12 / 4 = 3
let value_mod = num1 % num2;
println!("{} % {} = {}", num1, num2, value_mod);
// output ➜ 12 % 4 = 0
A.8.2. Operator perbandingan
Operator perbandingan selalu menghasilkan nilai bertipe data bool.
Berikut merupakan list operator untuk operasi perbandingan beserta contoh penerapannya di rust.
| Simbol | Kegunaan untuk mengecek |
|---|---|
== | apakah kiri sama dengan kanan? |
!= | apakah kiri tidak sama dengan kanan? |
> | apakah kiri lebih besar dari kanan? |
< | apakah kiri lebih kecil dari kanan? |
>= | apakah kiri lebih besar atau sama dengan kanan? |
<= | apakah kiri lebih kecil atau sama dengan kanan? |
let number_a = 12;
let number_b = 24;
let res_one = number_a == number_b;
println!("res_one: {res_one}");
let res_two = number_a != number_b;
println!("res_two: {res_two}");
let res_three = number_a > number_b;
println!("res_three: {res_three}");
let res_four = number_a < number_b;
println!("res_four: {res_four}");
let res_five = number_a >= number_b;
println!("res_five: {res_five}");
let res_six = number_a <= number_b;
println!("res_six: {res_six}");
Pada contoh di atas, variabel di print menggunakan macro println tanpa disisipkan paramnya. Penjelasannya ada di bawah ini.
◉ Named argument macro println
Salah satu teknik formatted print macro println adalah dengan menerapkan named argument. Yang biasanya menggunakan {} atau {1}, {2}, dan seterusnya, diganti dengan nama variabel yang diapit tanda kurung kurawal, contohnya res_one. Dengan teknik ini maka jika variabel res_one ada, akan langsung mereplace argument {res_one} tanpa perlu menyisipkan variabel tersebut saat pemanggilan macro println.
let res_one = number_a == number_b;
println!("res_one: {res_one}");
// output ➜ res_one: false
let res_two = number_a != number_b;
println!("res_two: {res_two}");
// output ➜ res_two: true
A.8.3. Operator negasi
Berikut merupakan list operator untuk operasi negasi beserta contoh penerapannya di rust.
| Simbol | Kegunaan | Catatan |
|---|---|---|
- | negasi numerik | bisa digunakan pada tipe data integer dan float |
! | logika NOT atau bitwise NOT | bisa digunakan pada tipe data integer dan bool |
let (value_left, value_right) = (12, -12);
let res_one = -value_left == value_right;
let res_two = !(value_left == value_right);
println!("{res_one} {res_two}");
// output ➜ true true
Untuk menggunakan operator negasi pada tipe data numerik, caranya dengan langsung menambahkan prefix - pada angka atau variabel. Contohnya -12 atau -value_left.
Penggunaan operator logika ! juga sama, tinggal tambahkan saja sebagai prefix dari data bool atau statement yang menghasilkan data bool, contohnya !(value_left == value_right).
A.8.4. Operator logika / bool
Berikut merupakan list operator untuk operasi logika bool beserta contoh penerapannya di rust.
| Simbol | Kegunaan |
|---|---|
&& | logika AND |
| || | logika OR |
! | logika NOT |
let (bool_left, bool_right) = (false, true);
println!("AND result: {}", bool_left && bool_right);
println!("OR result: {}", bool_left || bool_right);
// output ➜ AND result: false
// output ➜ OR result: true
◉ Whitespace character tab \t
Rust mendukung karakter standar whitespace seperti \t yang kegunaannya adalah untuk horizontal tab. Contoh penerapannya, gunakan \t dalam string literal:
println!("AND result\t: {}", bool_left && bool_right);
println!("OR result\t: {}", bool_left || bool_right);
A.8.5. Operator reference dan dereference
Untuk jenis operasi ini ada 3 buah operator yang bisa dipergunakan yaitu *, & dan &mut. Untuk sekarang kita tidak akan membahas topik ini karena masih terlalu awal. Nantinya kita akan kupas tuntas di chapter Pointer & References. Sementara kita pelajari chapter per chapter secara berurutan dulu.
A.8.6. Operator bitwise
Rust mendukung operator bitwise standar yang ada di bahasa pemrograman.
| Simbol | Kegunaan |
|---|---|
& | bitwise AND |
| | bitwise OR |
^ | bitwise XOR |
! | bitwise NOT |
<< | left shift |
>> | right shift |
A.8.7. Operator lainnya
Sebenarnya ada banyak lagi jenis operator di Rust programming, seperti type cast operator, reference/borrow operator, dll. Nantinya kita akan bahas operator tersebut satu per satu secara terpisah di chapter berbeda.
- Type cast operator dibahas pada chapter Type Alias & Casting
- Reference/borrow operator dibahas pada chapter Pointer & References
- Operator
?dibahas pada chapter Operator ?
Catatan chapter 📑
◉ Source code praktik
github.com/novalagung/dasarpemrogramanrust-example/../operator