Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,32 @@ sidebar_label: Version Changelogs & Updates
- Perbaiki self-referencing link
- [Ownership](/basic/ownership)
- Perbaiki nama variabel
- [Advanced Traits](/basic/advanced-traits)
- Perbaiki duplikasi kata "tidak"
- [Type Alias & Casting](/basic/type-alias-casting)
- Perbaiki nama method `as_second` menjadi `as_secs`
- [Tipe Data ➜ Option](/basic/option-type)
- Perbaiki nomor section `A.38.4` menjadi `A.39.4`
- [Perulangan While](/basic/perulangan-while)
- Perbaiki typo "Pach" menjadi "Path" pada link
- [Tipe Data ➜ Result](/basic/result-type)
- Perbaiki alt text gambar
- [Function](/basic/function)
- Perbaiki contoh naming convention `get_report_Status` menjadi `get_report_status`
- [Array](/basic/array)
- Perbaiki typo "bentu" menjadi "bentuk"
- [Vector](/basic/vector)
- Perbaiki typo "bebebrapa" menjadi "beberapa"
- [Traits ➜ Function](/basic/trait-function)
- Perbaiki typo "blcok" menjadi "block" dan "chpater" menjadi "chapter"
- [Attributes](/basic/attributes)
- Perbaiki typo "Jialankan" menjadi "Jalankan"
- [Module System ➜ Basic](/basic/module-basic)
- Perbaiki isi summary #3 dan #4 yang tertukar
- [Variabel](/basic/variabel)
- Penambahan contoh `24_i8`
- [String Literal vs String](/basic/string-slice-vs-string-string)
- Perbaiki source code example yang tidak sesuai dengan doc

## 📝 Release v1.0.20240830 (2024-08-30)

Expand Down
2 changes: 1 addition & 1 deletion docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@ Tools yang digunakan:

Desain arsitektur:

![Dasar pemrograman python](https://raw.githubusercontent.com/novalagung/dasarpemrogramanrust/master/etc/base%20architecture.jpg)
![Dasar Pemrograman Rust](https://raw.githubusercontent.com/novalagung/dasarpemrogramanrust/master/etc/base%20architecture.jpg)
2 changes: 1 addition & 1 deletion docs/basic/advanced-traits.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ Tipe data aslinya tetap bisa diakses, tapi butuh tambahan effort. Lebih jelasnya

## A.37.7. *Associated types* pada trait

Associated types adalah tipe data yang didefinisikan di dalam suatu trait. Associated types tidak tidak memiliki tipe data konkret saat didefinisikan, namun ketika trait diimplementasikan maka tipe tersebut harus ditentukan tipe data konkretnya.
Associated types adalah tipe data yang didefinisikan di dalam suatu trait. Associated types tidak memiliki tipe data konkret saat didefinisikan, namun ketika trait diimplementasikan maka tipe tersebut harus ditentukan tipe data konkretnya.

Lebih jelas silakan perhatikan kode berikut:

Expand Down
2 changes: 1 addition & 1 deletion docs/basic/array.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ Setelah mendapatkan objek bertipe `Enumerate`, keyword `for in` digunakan untuk

## A.13.8. Append elemen ke array

Operasi menambahkan sebuah elemen ke array yang hasilnya melebihi kapasitas ... adalah tidak bisa. Karena array memiliki size fixed, tidak dinamis. Solusinya adalah menggunakan tipe data Vector. Nantinya array perlu dikonversi ke bentu Vector terlebih dahulu kemudian di-append, lebih jelasnya kita bahas pada chapter [Vector](/basic/vector).
Operasi menambahkan sebuah elemen ke array yang hasilnya melebihi kapasitas ... adalah tidak bisa. Karena array memiliki size fixed, tidak dinamis. Solusinya adalah menggunakan tipe data Vector. Nantinya array perlu dikonversi ke bentuk Vector terlebih dahulu kemudian di-append, lebih jelasnya kita bahas pada chapter [Vector](/basic/vector).

## A.13.9. Nested array

Expand Down
2 changes: 1 addition & 1 deletion docs/basic/attributes.md
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ fn main() {

Pada kode di atas bisa dilihat, module `util1` dan `util2` patuh mengikuti aturan deklarasi module system. Berbeda dengan `util3` yang sebenarnya dideklarasikan dengan nama `util3_mymodule` (karena filename-nya adalah `util3_mymodule.rs`). Nama module satu ini diubah menjadi `util3` lalu dengan memanfaatkan attribute `path` kita arahkan isi module `util3` adalah berada di `util3_mymodule.rs`.

Jialankan program, harusnya tidak ada error.
Jalankan program, harusnya tidak ada error.

![Attribute](img/attribute-9.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/basic/function.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ fn greet() {

## A.17.2. *Naming convention* fungsi

Sesuai anjuran di [halaman dokumentasi Rust](https://rust-lang.github.io/api-guidelines/naming.html), aturan penulisan nama fungsi di Rust adalah menggunakan **snake case**. Nama fungsi dituliskan dalam huruf kecil dengan separator tanda garis bawah atau underscore (`_`). Contohnya seperti: `main`, `greet_message`, `get_report_Status`, dll.
Sesuai anjuran di [halaman dokumentasi Rust](https://rust-lang.github.io/api-guidelines/naming.html), aturan penulisan nama fungsi di Rust adalah menggunakan **snake case**. Nama fungsi dituliskan dalam huruf kecil dengan separator tanda garis bawah atau underscore (`_`). Contohnya seperti: `main`, `greet_message`, `get_report_status`, dll.

## A.17.3. Parameter fungsi dan argumen fungsi

Expand Down
4 changes: 2 additions & 2 deletions docs/basic/module-basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ Hingga pembahasan pada praktik submodule, kita telah belajar penerapan module de
- Penggunaan normal module dalam binary crate
- Pembuatan module dengan nama `my_io`, dengan isi/item ditulis pada file `my_io.rs`
- Pembuatan module dengan nama `my_number`, dengan isi/item ditulis pada file `my_number/mod.rs`
- Pembuatan submodule dengan nama `my_number/conversion_utility`, dengan isi/item ditulis pada file `my_number/conversion.rs` yang di-import menggunakan `path` attribute.
- Pembuatan submodule dengan nama `my_number/conversion_utility`, dengan isi/item ditulis pada file `my_number/conversion_utility.rs`.
- Penggunaan keyword `pub` pada fungsi agar bisa diakses dari luar module
- Penggunaan keyword `pub` pada submodule agar bisa diakses dari luar parent module
- Pengaksesan item milik module, yaitu: `my_io::read_entry`, `my_number::conversion_utility::string_to_number`, dan `my_number::is_odd_number`
Expand Down Expand Up @@ -398,7 +398,7 @@ Hingga pembahasan pada praktik module `path` attribute, kita telah belajar pener
- Penggunaan normal module dalam binary crate
- Pembuatan module dengan nama `my_io`, dengan isi/item ditulis pada file `my_io.rs`
- Pembuatan module dengan nama `my_number`, dengan isi/item ditulis pada file `my_number/mod.rs`
- Pembuatan submodule dengan nama `my_number/conversion_utility`, dengan isi/item ditulis pada file `my_number/conversion_utility/mod.rs`
- Pembuatan submodule dengan nama `my_number/conversion_utility`, dengan isi/item ditulis pada file `my_number/conversion.rs` yang di-import menggunakan `path` attribute.
- Penggunaan keyword `pub` pada fungsi agar bisa diakses dari luar module
- Penggunaan keyword `pub` pada submodule agar bisa diakses dari luar parent module
- Pengaksesan item milik module, yaitu: `my_io::read_entry`, `my_number::conversion_utility::string_to_number`, dan `my_number::is_odd_number`
Expand Down
2 changes: 1 addition & 1 deletion docs/basic/option-type.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ Closure harus dalam notasi `FnOnce() -> T` yang mana `T` pada konteks ini adalah
>
> Lebih jelasnya mengenai closure dibahas pada chapter [Closures](/basic/closures).

## A.38.4. Operator `?` pada tipe `Option`
## A.39.4. Operator `?` pada tipe `Option`

Tipe data `Option` bisa digunakan pada operator `?`. Penjelasannya ada di chapter terpisah di [Operator ?](/basic/operator-tanda-tanya).

Expand Down
2 changes: 1 addition & 1 deletion docs/basic/perulangan-while.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Pada contoh di atas, fungsi `sleep` dipanggil dalam blok kode perulangan agar ad

Jika ingin jeda durasi yang lebih lama, ubah saja angka `1` pada `Duration::from_secs(1)`. Contoh: `Duration::from_secs(5)` berarti jeda 5 detik.

> - Lebih jelasnya perihal path dibahas pada chapter [Module System ➜ Pach & Item](/basic/path-item)
> - Lebih jelasnya perihal path dibahas pada chapter [Module System ➜ Path & Item](/basic/path-item)
> - Lebih jelasnya perihal keyword `use` dibahas pada chapter [Module System ➜ Use](/basic/use)
> - Lebih jelasnya perihal fungsi dibahas pada chapter [Function](/basic/function)
> - Lebih jelasnya perihal struct dibahas pada chapter [Struct](/basic/struct)
Expand Down
2 changes: 1 addition & 1 deletion docs/basic/result-type.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ match result {
}
```

![Option type](img/result-type-2.png)
![Result type](img/result-type-2.png)

Bisa dilihat pada kode di atas mudahnya pengambilan nilai `m` dari `Err(m)` dan juga `r` dari `Ok(r)`. Penerapan `match` untuk seleksi kondisi biasa disebut dengan **pattern matching** dan teknik ini sangat fleksibel dan advance.

Expand Down
6 changes: 3 additions & 3 deletions docs/basic/trait-function.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ where

Trait `FnMut` ([std::ops::FnMut](https://doc.rust-lang.org/std/ops/trait.FnMut.html)) merupakan trait yang menjadikan suatu closure bisa diakses berkali-kali dan bisa me-mutate atau mengubah data suatu variabel yang berada di luar scope block closure. Trait ini juga otomatis ter-implement pada closure yang di dalamnya ada kode pengaksesan variabel yang berada di luar scope block closure.

Contoh penerapannya silakan lihat closure `square_x` berikut. Closure tersebut di-dalamnya mengubah nilai `x` yang dideklarasikan di luar blcok closure, oleh karenanya trait `FnMut` otomatis ter-implement.
Contoh penerapannya silakan lihat closure `square_x` berikut. Closure tersebut di-dalamnya mengubah nilai `x` yang dideklarasikan di luar block closure, oleh karenanya trait `FnMut` otomatis ter-implement.

```rust
let mut x = 5;
Expand Down Expand Up @@ -81,7 +81,7 @@ Jika dipaksa deklarasi menggunakan `Fn`, hasilnya pasti error.

`FnMut` merupakan supertrait dari `Fn`, artinya closure dengan trait `Fn` juga bisa digunakan sebagai argument pemanggilan fungsi di mana parameter fungsi tersebut bertipe `FnMut`.

> Lebih jelasnya mengenai supertrait dibahas pada chpater [Supertrait](#/wip/supertrait)
> Lebih jelasnya mengenai supertrait dibahas pada chapter [Supertrait](#/wip/supertrait)

## A.49.3. Trait `FnOnce`

Expand All @@ -108,7 +108,7 @@ Jika closure dengan tipe `FnOnce` dipaksa diakses dua kali, pasti muncul error.

![Closure](img/trait-function-2.png)

> Lebih jelasnya mengenai supertrait dibahas pada chpater [Supertrait](#/wip/supertrait)
> Lebih jelasnya mengenai supertrait dibahas pada chapter [Supertrait](#/wip/supertrait)

## A.49.4. Relasi antara trait function dengan function

Expand Down
2 changes: 1 addition & 1 deletion docs/basic/type-alias-casting.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ Hasilnya adalah nilai tetap tidak akan kembali seperti semula. Jadi silakan berh

Pengaksesan `SystemTime::now()` mengembalikan data waktu sekarang, dan jika di chain dengan method `duration_since(UNIX_EPOCH)` hasilnya adalah data duration bertipe `Result<Duration, SystemTimeError>`.

Dari data tersebut bisa kita chain lagi dengan method `unwrap` dan `as_second` untuk mengambil datanya dalam bentuk `u64`.
Dari data tersebut bisa kita chain lagi dengan method `unwrap` dan `as_secs` untuk mengambil datanya dalam bentuk `u64`.

> - Lebih jelasnya mengenai module `std::time` dibahas pada chapter [DateTime](/basic/datetime)
> - Lebih jelasnya mengenai tipe data `Result` dibahas pada chapter [Tipe Data ➜ Result](/basic/result-type)
Expand Down
2 changes: 1 addition & 1 deletion docs/basic/vector.md
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ Semua operasi slice bisa diterapkan di vector.

Tipe data `VecDeque<T>` adalah sama seperti `Vec<T>` plus mendukung operasi menambah dan mengurangi elemen dari dua sisi secara efisien.

Pada tipe data `Vec<T>`, ada method `pop` yang fungsinya menghapus data elemen terakhir dan method `push` untuk menambah elemen baru dari kanan. Tipe data `VecDeque` memiliki bebebrapa method tambahan, yaitu:
Pada tipe data `Vec<T>`, ada method `pop` yang fungsinya menghapus data elemen terakhir dan method `push` untuk menambah elemen baru dari kanan. Tipe data `VecDeque` memiliki beberapa method tambahan, yaitu:

- method `pop_front` untuk hapus data elemen pertama atau paling kiri (indeks ke-0)
- method `push_front` untuk menambah data dari kiri (indeks ke-0)
Expand Down
2 changes: 1 addition & 1 deletion docs/download-pdf.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ sidebar_label: Download versi PDF

Ebook Dasar Pemrograman Rust bisa di-download dalam bentuk file PDF, silakan gunakan link berikut:

> [Dasar Pemrograman Rust.pdf](https://github.com/novalagung/dasarpemrogramanrust/raw/ebooks/dasarpemrogramanrust.pdf?v=v1.0.20240830)
> [Dasar Pemrograman Rust.pdf](https://github.com/novalagung/dasarpemrogramanrust/raw/ebooks/dasarpemrogramanrust.pdf?v=v1.1.20260608)
2 changes: 1 addition & 1 deletion docs/installation/instalasi-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ cargo --version

### ◉ Windows

Silakan download file `rustup-init.exe` di [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install). Jalankan installar, lalu run command berikut untuk mengecek hasil instalasi.
Silakan download file `rustup-init.exe` di [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install). Jalankan installer, lalu run command berikut untuk mengecek hasil instalasi.

```bash
rustup --version
Expand Down
Loading