Skip to main content

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.

SimbolKegunaan
+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.

SimbolKegunaan 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.

SimbolKegunaanCatatan
-negasi numerikbisa digunakan pada tipe data integer dan float
!logika NOT atau bitwise NOTbisa 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.

SimbolKegunaan
&&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);

operator boolean

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.

SimbolKegunaan
&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.


Catatan chapter 📑​

◉ Source code praktik​

github.com/novalagung/dasarpemrogramanrust-example/../operator

◉ Chapter relevan lainnya​

◉ Referensi​