author Ahmad Muhardian

Belajar Rust #03: Memahami Sintaks Dasar Rust


Memahami Sintaks Dasar Rust

Sintaks bahasa Rust sebenarnya mirip-mirip dengan C dan C++.

Jika sebelumnya kamu sudah pernah coding dengan bahasa C Family (C, C++, Java, Javascript)..

..maka kamu akan cepat terbiasa coding di Rust.

Pada tutorial ini, kita akan belajar sintaks-sintaks dasar pada program Rust seperti fungsi main, statement, blok program, komentar, dan sebagainya.

Setelah kamu membaca tutorial ini, diharapkan bisa menulis program Rust sendiri dengan benar.

Oke..

Langsung saja kita mulai ya.

Fungsi Main di Rust

Setiap program Rust setidaknya punya fungsi main(). Fungsi main() adalah fungsi yang akan dieksekusi pertama kali saat program dijalankan.

Apa boleh tidak pakai fungsi main()?

Boleh-boleh saja, tapi jika tidak ada fungsi main.. maka project-mu akan dianggap sebagai library. Library adalah program yang bisa digunakan ulang di program lain.

Library tidak bisa dieksekusi secara langsung karena ia tidak memiliki fungsi main.

Oleh sebab itu, kita membutuhkan fungsi main() jika ingin programnya bisa dieksekusi komputer.

Contoh fungsi main:

fn main(){
	// kode program di sini
}

Kita menggunakan kata fn untuk membuat fungsi di Rust, kemudian diikuti dengan nama fungsinya. fn sebenarnya singkatan dari function.

penjelasan tentang fungsi

Setelah nama fungsi ada kurung (), Ini dipakai untuk memberikan parameter input ke fungsi. Pada contoh di atas kita tidak memberikan parameter apapun.

Kemudian setelah kurung () ada kurung kurawal {} yang menyatakan body fungsi. Nah, di dalam kurung kurawal inilah kita akan menulis ekspresi dan statement.

Contohnya:

fn main() {
	print!("Hello World");
	print!("Saya sedang belajar Rust");
}

Apa itu ekspresi dan statement?

Jika kamu baru pertama mendengar istilah ini, saya sarankan untuk membaca:

Oke lanjut..

Penulisan Statement dan Ekspresi di Rust

Statement dan ekspresi adalah bagian dari kode program yang berfungsi untuk memberikan instruksi ke komputer.

Misalnya instruksi untuk mencetak teks ke layar, menghitung operasi tertentu, melakukan pengulangan, dan sebagainya.

Penulisan statement dan ekspresi biasanya diakhiri dengan titik koma (;).

Contoh:

print!("Tutorial Rust untuk Pemula");
print!("Aku suka belajar Rust");
print!("2 + 2 = {}", 2 + 2);

Apakah titik koma wajib di Rust?

Yap wajib, tapi pada kasus ekspresi tertentu kita bisa tidak pakai titik koma.

Contoh:

Jika kita tidak pakai titik koma pada statement print!().

fn main() {
    print!("Halo")
    print!("Rust")
}

Maka akan terjadi error seperti ini:

error: expected `;`, found `print`
 --> src/main.rs:2:19
  |
2 |     print!("Halo")
  |                   ^ help: add `;` here
3 |     print!("Rust")
  |     ----- unexpected token

Nah sekarang coba ubah kodenya menjadi seperti ini:

fn main() {
    print!("Halo");
    print!(" ");
    print!("Rust")
}

Jika kita perhatikan, statement terakhir pada program ini tidak kita kasi titik koma dan ini tidak akan error.

Hasilnya akan menampilkan output:

Halo Rust

Kok bisa begitu?

Ini karena statement atau ekspresi di akhir fungsi atau blok dianggap sebagai nilai kembalian dari blok tersebut. Jadi boleh tidak pakai titik koma di sana. 1

Blok Program dan Scope di Rust

Blok dan Scope merupakan kumpulan dari statement atau ekspresi yang dibungkus dalam satu blok dengan kurung kurawal.

Tiap blok atau scope dibuat dengan kurung { kemudian ditutup dengan kurung }.

Penjelasan tentang blok dan scope di rust

Contoh:

// ini satu statement
print!("Halo");

// ini blok yang terdiri dari tiga statement
{
  print!("Saya sedang belajar");
  print!("Bahasa pemrograman Rust");
  print!("di Petani Kode");
}

// ini juga blok walaupun cuma berisi stau statement
fn greeting(){
  print!("Selamat pagi");
}

Pada contoh ini terdapat dua blok program. Blok yang pertama adalah blok ekspresi yang berisi tiga statement. Blok yang kedua adalah blok fungsi greeting().

Statement pada baris pertama tidak termasuk dalam scope, karena tidak berada di dalam kurung kurawal.

Selain kedua blok ini, masih ada blok-blok yang lain seperti blok if, if-else, for, while, try, match, dan sebagainya.

Yang perlu diingat adalah blok kode selalu diapit dengan kurung kurawal. Jika hanya punya satu statement, bisa aja kita tulis dalam satu baris seperti ini:

fn greeting() { print!("Selamat pagi") }

Di dalam blok kode juga bisa ada blok kode yang lainnya.

Contoh:

fn greeting(){
  {
    print!("halo");  
    {
      print!("Rust");
    }
  }
}

Biasanya jika terdapat banyak blok kode seperti ini, kita sering melakukan kesalahan.. seperti salah tutup blok yang membuat programnya error.

Tipsnya:

Selalu buat penutup blok saat membuatnya dan coba aktifkan Bracket Colorization di VS Code agar kurung-kurungnya berwarna dan gampang dibaca.

Caranya:

Buka VS Code, masuk ke setting, lalu cari dengan kata kunci bracket dan centang pada Editor > Bracket Pair Colorization.

bracket colorization

Maka hasilnya:

bracket colorization result

Oh ya, indentasi di blok kode sebenarnya tidak wajib. Tapi sebaiknya gunakan indentasi agar kodenya gampang dibaca.

❌ Contoh yang buruk tanpa indentasi:

fn greeting(){
{
print!("halo");
{
print!("Rust");
}
}
}

✅ Contoh yang baik dengan indentasi:

fn greeting(){
  {
    print!("halo");  
    {
      print!("Rust");
    }
  }
}

Komentar di Rust

Komentar adalah bagian program yang tidak akan dieksekusi komputer.

Biasanya komentar digunakan untuk menabahkan informasi dan dokumentasi di dalam kode untuk dibaca oleh diri sendiri maupun orang lain.

Selain itu, komentar dapat juga kita pakai untuk menonaktifkan kode tertentu agar tidak dieksekusi komputer.

Komentar di Rust dapat kita buat dengan garis miring ganda // dan garis miring asterik /*.

Contoh:

fn main() {
    // ini komentar dalam satu baris
    print!("Halo");
    print!(" ");
    /*
    Ini komentar
    yang lebih
    dari satu baris
    dan baris kode di bawah ini berada di dalam komentar
    karena kita tidak ingin komputer mengeksekusinya
    */
    //print!("Rust")
}

Apapun yang kita tulis di dalam komentar, komputer tidak akan mengeksekusinya.

Case Sensitive di Rust

Penulisan case di Rust bersifat Case Sensitive, artinya penulisan huruf besar dan huruf kecil akan dibedakan.

Contoh:

fn Main(){
	//...
}

Pada contoh ini kita menulis fungsi Main() dengan huruf M besar atau kapital.

Ini akan membuat programnya error, karena kita salah menulis case-nya. Seharusnya ditulis dengan huruf kecil, bukan huruf besar.

Contoh lagi:

// ini penulisan yang salah karena P huruf besar
Print!("Halo Rust");

// ini penulisan yang benar
print!("Halo rust");

Jadi perhatikanlah saat kamu menulis sintaks Rust. Penulisan huruf besar dan kecilnya akan berpengaruh.

Apa Selanjutnya?

Nah, itu saja sintaks dasar yang harus kamu perhatikan dalam menulis program Rust.

Perhatikanlah cara menulis yang benar agar program-mu tidak error dan mudah dibaca.

Sebenarnya masih ada lagi sintaks lainnya yang harus dipelajari, ini akan dijelaskan di tutorial berikutnya.

Karena itu, silakan lanjutkan ke:

  • Belajar Rust #04: Fungsi Input dan Output di Rust

Selamat belajar! 🙌

Daftar isi tutorial

  1. Belajar Rust #01: Mengenal Bahasa Pemrograman Rust
  2. Belajar Rust #02: Install dan Setup Rust di Komputermu
  3. Belajar Rust #03: Memahami Sintaks Dasar Rust
  4. Belajar Rust #04: Fungsi Input dan Output di Rust (Coming soon)
  5. Belajar Rust #05: Variabel dan Tipe Data di Rust (Coming soon)
  6. Belajar Rust #06: Operator di Rust (Coming soon)
  7. Belajar Rust #07: Percabangan di Rust (Coming soon)
  8. Belajar Rust #08: Perulangan di Rust (Coming soon)
  9. Belajar Rust #09: Struktur Data List di Rust (Coming soon)
  10. Belajar Rust #10: Struktur Data Struct di Rust (Coming soon)
  11. Belajar Rust #11: Tipe Data Enum di Rust (Coming soon)
  12. Belajar Rust #12: Fungsi di Rust (Coming soon)
  13. Belajar Rust #13: Memahami Pointer di Rust (Coming soon)
  14. Belajar Rust #14: Memahami Macro di Rust (Coming soon)
  15. Belajar Rust #15: Error Handling di Rust (Coming soon)
  16. Belajar Rust #16: Crates dan Cargo di Rust (Coming soon)
  17. 🚧 Work in Progress 🚧

    Maaf jika ada link yang belum aktif. Link tersebut masih dalam draft atau sedang dikerjakan. Do'akan agar penulis tetap sehat dan tulisannya cepat terbit 🙏. Kamu juga bisa memberikan dukungan dengan mentrakteer kopi ☕ supaya penulis kuat begadang, hehe.