DEV Community

Adi Purwanto
Adi Purwanto

Posted on • Edited on

Stage 1 - Introduction | Belajar Rust #2

Untuk stage ini masih sangat "Easy Peasy Lemon Squeezy”, dalam stage ini saya akan membahas hal-hal basic mengenai Rust. Jika kalian kepo saya menggunakan Replit untuk menulis code-nya, jika kalian ingin menggunakan local text-editor silahkan saja, tapi jangan lupa install Rust-nya loh wajib hukumnya, banyak tutorial di google dan youtube kok.

Semua Rust code ditulis didalam file dengan .rs extension

1. Program Pertama Saya

fn main() {
    println!("Halo, dunia!");
}
Enter fullscreen mode Exit fullscreen mode

fn → function notation

main() → mendeklarasi sebuah main function

Anatomi dari Program Halo, dunia!

  • main function adalah awal dari setiap program Rust.
  • Apa saja yang diisi dalam sepasang kurung kurawal {} merupakan block of code.
  • println! macro menerima string “Halo, dunia!” dan memunculkannya di screen/ terminal.

Apa sih macro?

Macro merupakan sebuah expression yang memiliki tanda seru (bukan berarti dia asik loh tapi tanda ! ← itu) sebelum kurung (), contohnya.

macro_name!();
Enter fullscreen mode Exit fullscreen mode

Compile dan Run Program

➜  ~ rustc src/main.rs 
➜  ~ ./main 
Halo, dunia!
Enter fullscreen mode Exit fullscreen mode

2. Formating Dasar

Sekarang saya ingin mengenalkan kepada kalian bagaimana untuk format sebuat statement di Rust dengan gaya yang beda-beda. Di bab 1 (anggap aja bab kali ye) kita sudah mengetahui bagaimana cara print sebuah string ke console . “Tapi kan saya gak mungkin mau print string/ kata statik saja?”, eittss tenang saja kita bisa kok print strings dalam format tertentu menggunakan placeholders yang sudah disediakan oleh Rust.

println!("{}", 18);
Enter fullscreen mode Exit fullscreen mode

{} → Placeholder notation

18 → Placeholder value

Note: Rust tidak mengijinkan kita sekalipun/ haram hukumnya untuk print numbers maupun variables secara langsung di println!() macro. Kita perlu placeholder {} untuk print numbers maupun variables.

Single Placeholder

Ketika kita ingin melakukan print sebuah single value kita bisa menggunakan single placeholder

fn main() {
    println!("Tanggal: {}", 18);
}
Enter fullscreen mode Exit fullscreen mode

→ Output

Tanggal: 18
Enter fullscreen mode Exit fullscreen mode

Multiple Placeholders

Selain single placeholder, kita juga bisa menggunakan multiple placeholders di println!() macro. Jumlah dari placeholders harus/ wajib (fardhu ain) sama dengan jumlah values yang akan di print.

fn main() {
    println!("My name is {}, you can call me {}", "Adi", "Kincup");
}
Enter fullscreen mode Exit fullscreen mode

→ Output

My name is Adi, you can call me Kincup
Enter fullscreen mode Exit fullscreen mode

Positional Arguments

Kita bisa menspesifikan dimana posisi sebuah values berada. Setiap value kita diberikan nomor berdasarkan urutan. Value pertama diberi nilai 0, berikutnya diberi nilai 1, dan seterusnya berurutan.

Kenapa?

Values bisa di taruh di urutan mana saja

Kita bisa menulis value 1 kali dan digunakan beberapa kali

fn main() {
    println!("My name is {1}, you can call me {0} or {1}", "Adi", "Kincup");
}
Enter fullscreen mode Exit fullscreen mode

→ Output

My name is Kincup, you can call me Adi or Kincup
Enter fullscreen mode Exit fullscreen mode

Named Arguments

Kita bisa juga memberikan nama argument dan assign sebuah value. Konsep yang diberikan mirip dengan positional arguments namun kita bisa assign value secara explicit.

fn main() {
    println!("My name is {name}, you can call me {call} or {name}", name = "Adi",call = "Kincup");
}
Enter fullscreen mode Exit fullscreen mode

→ Output

My name is Adi, you can call me Kincup or Adi
Enter fullscreen mode Exit fullscreen mode

Placeholder Traits

Kita bisa mengkonversi value ke binary, hexadecimal, atau octal

fn main() {
    println!("Umur : 23, biner: {:b}, hexa: {:x}, octal: {:o}", 23, 23, 23);
}
Enter fullscreen mode Exit fullscreen mode

→ Output

Umur : 23, biner: 10111, hexa: 17, octal: 27
Enter fullscreen mode Exit fullscreen mode

Basic Math

Kita bisa melakukan kalkulasi basic dan placeholder akan menunjukan hasilnya.

fn main() {
    println!("{} * {} = {}", 2, 3, 2 * 3);
}
Enter fullscreen mode Exit fullscreen mode

→ Output

2 * 3 = 6
Enter fullscreen mode Exit fullscreen mode

Placeholder for a Debug Trait

Jika kita ingin mencoba/ testing print banyak nilai namun kita malas menggunakan multiple placeholders, kita bisa menggunakan single placeholder dengan bantuann debug trait ({:?}).

fn main() {
    println!("{:?}", ("I am super very handsome!", 100));
}
Enter fullscreen mode Exit fullscreen mode

→ Output

("I am super very handsome!", 100)
Enter fullscreen mode Exit fullscreen mode

3. Printing Style

Macro Printing style
print!() print string ke console
println!() sama seperti print!(), namun menambahkan enter atau baris baru di akhir string
eprint!() print dengan status error
eprintln!() sama seperti eprint!(), namun menambahkan enter atau baris baru di akhir

4. Comments

Comments merupakan instruksi yang bisa dibaca oleh programmer untuk membantu menjelaskan mengenai code. Comments tidak dibaca oleh compiler.

Line Comments //

Comments ini sangat direkomendasikan untuk mengkomentari sebuah line single

// ini fungsi main loh
fn main() {
  // ini fakta
    println!("{:?}", ("I am super very handsome!", 100)); // jangan lupa ini fakta
}
Enter fullscreen mode Exit fullscreen mode

→ Output

("I am super very handsome!", 100)
Enter fullscreen mode Exit fullscreen mode

Block Comments /* . . . */

Comments ini digunakan untuk men-disable large chunk of code.

// ini fungsi main loh
fn main() {
  // ini fakta
    /* 
  println!("{:?}", ("I am super very handsome!", 100));
  */ 
}
Enter fullscreen mode Exit fullscreen mode

→ Output


Enter fullscreen mode Exit fullscreen mode

Doc Comments /// or //!

→ Outer Doc Comments (///) → ditulis di luar blok code.

→ Inner Doc Comments (//!) → ditulis di dalam blok code.

/// ini outer doc comment
/// jangan lupa loh
fn main() {
  //! ini fakta
  //! ditulis fakta aja
    println!("{:?}", ("I am super very handsome!", 100)); 
}
Enter fullscreen mode Exit fullscreen mode

→ Output

("I am super very handsome!", 100)
Enter fullscreen mode Exit fullscreen mode

Jika ada kesalahan dalam menyampaikan konsep dan penulisan mohon bantuannya di kolom discussion 🤗. Terima kasih.

#samasamabelajar


LIST COURSE:

If you don't know me, then, you would not know who I am


Twitter

Buy me a coffe

Top comments (0)