diff --git a/404.html b/404.html index 93fb4fd3..72330873 100644 --- a/404.html +++ b/404.html @@ -10,13 +10,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/CONTRIBUTING.html b/CONTRIBUTING.html index 5a544e4b..87165f0a 100644 --- a/CONTRIBUTING.html +++ b/CONTRIBUTING.html @@ -8,13 +8,13 @@ - + - +
Skip to main content

Contribution & Tech Stack

Ebook Dasar Pemrograman Rust adalah project open source. Siapapun bebas untuk berkontribusi di sini, bisa dalam bentuk perbaikan typo, update kalimat, maupun submit tulisan baru.

Bagi kawan-kawan yang berminat untuk berkontribusi, silakan fork github.com/novalagung/dasarpemrogramanrust, kemudian langsung saja cek/buat issue kemudian submit relevan pull request untuk issue tersebut 😊

Checkout project

git clone https://github.com/novalagung/dasarpemrogramanrust.git
git submodule update --init --recursive --remote

Maintainer

E-book ini di-inisialisasi dan di-maintain oleh Noval Agung Prayogo.

Contributors

Berikut merupakan hall of fame kontributor yang sudah berbaik hati menyisihkan waktunya untuk membantu pengembangan e-book ini.

  1. Acep Saepudin
  2. Afifurrohman
  3. ardiantovn
  4. Fal
  5. Fredianto
  6. I Putu Saputrayana
  7. Khisby Al Ghofari
  8. Lori
  9. M. Zakiyuddin Munziri
  10. Opa Kholis Majid
  11. Rian
  12. Shandy Siswandi
  13. Theis Andatu
  14. ... anda :-)

Ebook/webhook techstack & architecture

Jika pembaca tertarik untuk membuat konten ebook berbasis web sekaligus versi PDF file-nya, bisa menggunakan link berikut sebagai referensi:

https://medium.com/geekculture/serverless-e-book-web-book-using-docusaurus-v2-github-pages-actions-and-pdf-tools-4fef54847b85

Tools yang digunakan:

Desain arsitektur:

Dasar pemrograman python

- + \ No newline at end of file diff --git a/LICENSE.html b/LICENSE.html index 0dd57244..d1d025f4 100644 --- a/LICENSE.html +++ b/LICENSE.html @@ -8,13 +8,13 @@ - + - +
Skip to main content

Lisensi & Distribusi Konten

Ebook Dasar Pemrograman Rust gratis untuk disebarluaskan secara bebas, dengan catatan sesuai dengan aturan lisensi CC BY-SA 4.0 yang kurang lebih sebagai berikut:

  • Diperbolehkan menyebar, mencetak, dan menduplikasi material dalam konten ini ke siapapun.
  • Diperbolehkan memodifikasi, mengubah, atau membuat konten baru menggunakan material yang ada dalam ebook ini untuk keperluan komersil maupun tidak.

Dengan catatan:

  • Harus ada credit sumber aslinya, yaitu Dasar Pemrograman Rust atau novalagung
  • Tidak mengubah lisensi aslinya, yaitu CC BY-SA 4.0
  • Tidak ditambahi restrictions baru
  • Lebih jelasnya silakan cek https://creativecommons.org/licenses/by-sa/4.0/.

FOSSA Status

- + \ No newline at end of file diff --git a/assets/js/935f2afb.13143cb2.js b/assets/js/935f2afb.cddcc82c.js similarity index 93% rename from assets/js/935f2afb.13143cb2.js rename to assets/js/935f2afb.cddcc82c.js index b971303f..b801f15d 100644 --- a/assets/js/935f2afb.13143cb2.js +++ b/assets/js/935f2afb.cddcc82c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdasarpemrogramanrust=self.webpackChunkdasarpemrogramanrust||[]).push([[53],{1109:a=>{a.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Dasar Pemrograman Rust","href":"/","docId":"index"},{"type":"link","label":"Pengenalan Rust Programming","href":"/pengelanan-rust-programming","docId":"pengelanan-rust-programming"},{"type":"link","label":"Contribution & Tech Stack","href":"/CONTRIBUTING","docId":"CONTRIBUTING"},{"type":"link","label":"Download versi PDF","href":"/download-pdf","docId":"download-pdf"},{"type":"link","label":"Lisensi & Distribusi Konten","href":"/LICENSE","docId":"LICENSE"},{"type":"category","label":"Persiapan dan Instalasi","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Instalasi Rust","href":"/installation/instalasi-rust","docId":"installation/instalasi-rust"},{"type":"link","label":"Rust Editor & Plugin","href":"/installation/rust-editor-plugin","docId":"installation/rust-editor-plugin"}]},{"type":"category","label":"Pemrograman Rust Dasar","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"A.1. Program Pertama \u279c Hello Rust","href":"/basic/hello-rust","docId":"basic/hello-rust"},{"type":"link","label":"A.2. Build dan Run Program Rust","href":"/basic/build-dan-run-program-rust","docId":"basic/build-dan-run-program-rust"},{"type":"link","label":"A.3. Komentar","href":"/basic/komentar","docId":"basic/komentar"},{"type":"link","label":"A.4. Variabel","href":"/basic/variabel","docId":"basic/variabel"},{"type":"link","label":"A.5. Tipe Data \u279c Primitive Scalar","href":"/basic/tipe-data-primitive-scalar","docId":"basic/tipe-data-primitive-scalar"},{"type":"link","label":"A.6. Tipe Data \u279c String Literal (&str)","href":"/basic/tipe-data-string-literal","docId":"basic/tipe-data-string-literal"},{"type":"link","label":"A.7. Konstanta","href":"/basic/konstanta","docId":"basic/konstanta"},{"type":"link","label":"A.8. Operator","href":"/basic/operator","docId":"basic/operator"},{"type":"link","label":"A.9. Seleksi Kondisi \u279c if, else if, else","href":"/basic/seleksi-kondisi-if","docId":"basic/seleksi-kondisi-if"},{"type":"link","label":"A.10. Perulangan \u279c while","href":"/basic/perulangan-while","docId":"basic/perulangan-while"},{"type":"link","label":"A.11. Perulangan \u279c loop, break, continue, label","href":"/basic/perulangan-loop-break-continue-label","docId":"basic/perulangan-loop-break-continue-label"},{"type":"link","label":"A.12. Perulangan \u279c for in","href":"/basic/perulangan-for-in","docId":"basic/perulangan-for-in"},{"type":"link","label":"A.13. Array","href":"/basic/array","docId":"basic/array"},{"type":"link","label":"A.14. Slice (Basic)","href":"/basic/slice","docId":"basic/slice"},{"type":"link","label":"A.15. Tuple","href":"/basic/tuple","docId":"basic/tuple"},{"type":"link","label":"A.16. Vector","href":"/basic/vector","docId":"basic/vector"},{"type":"link","label":"A.17. Function","href":"/basic/function","docId":"basic/function"},{"type":"link","label":"A.18. Module System \u279c Path & Item","href":"/basic/path-item","docId":"basic/path-item"},{"type":"link","label":"A.19. Module System \u279c Package & Crate","href":"/basic/package-crate","docId":"basic/package-crate"},{"type":"link","label":"A.20. Module System \u279c Module","href":"/basic/module-basic","docId":"basic/module-basic"},{"type":"link","label":"A.21. Module System \u279c Inline Module","href":"/basic/module-inline","docId":"basic/module-inline"},{"type":"link","label":"A.22. Module System \u279c Scope & Akses Item","href":"/basic/module-scope-item-access","docId":"basic/module-scope-item-access"},{"type":"link","label":"A.23. Struct","href":"/basic/struct","docId":"basic/struct"},{"type":"link","label":"A.24. Associated Function","href":"/basic/associated-function","docId":"basic/associated-function"},{"type":"link","label":"A.25. Method","href":"/basic/method","docId":"basic/method"},{"type":"link","label":"A.26. Enum","href":"/basic/enum","docId":"basic/enum"},{"type":"link","label":"A.27. Type Alias & Casting","href":"/basic/type-alias-casting","docId":"basic/type-alias-casting"},{"type":"link","label":"A.28. Module System \u279c Visibility & Privacy","href":"/basic/visibility-privacy","docId":"basic/visibility-privacy"},{"type":"link","label":"A.29. Module System \u279c Use, Import, Re-export","href":"/basic/use","docId":"basic/use"},{"type":"link","label":"A.30. Block Expression","href":"/basic/block-expression","docId":"basic/block-expression"},{"type":"link","label":"A.31. Shadowing","href":"/basic/shadowing","docId":"basic/shadowing"},{"type":"link","label":"A.32. Basic Memory Management","href":"/basic/basic-memory-management","docId":"basic/basic-memory-management"},{"type":"link","label":"A.33. Pointer & References","href":"/basic/pointer-references","docId":"basic/pointer-references"},{"type":"link","label":"A.34. Ownership","href":"/basic/ownership","docId":"basic/ownership"},{"type":"link","label":"A.35. Borrowing","href":"/basic/borrowing","docId":"basic/borrowing"},{"type":"link","label":"A.36. Traits","href":"/basic/traits","docId":"basic/traits"},{"type":"link","label":"A.37. Generics","href":"/basic/generics","docId":"basic/generics"},{"type":"link","label":"A.38. Tipe Data \u279c Option","href":"/basic/option-type","docId":"basic/option-type"},{"type":"link","label":"A.39. Tipe Data \u279c Result","href":"/basic/result-type","docId":"basic/result-type"},{"type":"link","label":"A.40. Pattern Matching","href":"/basic/pattern-matching","docId":"basic/pattern-matching"},{"type":"link","label":"A.41. Static Item","href":"/basic/static","docId":"basic/static"},{"type":"link","label":"A.42. Lifetime","href":"/basic/lifetime","docId":"basic/lifetime"},{"type":"link","label":"A.43. Slice Memory Management","href":"/basic/slice-memory-management","docId":"basic/slice-memory-management"},{"type":"link","label":"A.44. String Literal (&str) vs. String Custom Type","href":"/basic/string-slice-vs-string-literal","docId":"basic/string-slice-vs-string-literal"},{"type":"link","label":"A.45. Tipe Data \u279c String Custom Type","href":"/basic/tipe-data-custom-type-string-slice","docId":"basic/tipe-data-custom-type-string-slice"},{"type":"link","label":"A.46. Closures","href":"/basic/closures","docId":"basic/closures"},{"type":"link","label":"A.47. Trait \u279c Function (Fn, FnMut, FnOnce)","href":"/basic/trait-function","docId":"basic/trait-function"},{"type":"link","label":"A.48. Trait \u279c Iterator","href":"/basic/trait-iterator","docId":"basic/trait-iterator"},{"type":"link","label":"A.49. Attributes","href":"/basic/attributes","docId":"basic/attributes"},{"type":"link","label":"A.50. Date Time","href":"/basic/datetime","docId":"basic/datetime"},{"type":"link","label":"A.51. File, Path, Directory","href":"/basic/file-path-directory","docId":"basic/file-path-directory"}]}]},"docs":{"basic/array":{"id":"basic/array","title":"A.13. Tipe Data \u279c Array","description":"Belajar array pada rust. Contoh penerapan array, iterasi array, dan operasi lainnya pada array","sidebar":"tutorialSidebar"},"basic/associated-function":{"id":"basic/associated-function","title":"A.24. Associated Function","description":"Chapter ini membahas tentang associated function. Kita akan belajar apa itu associated function dan apa perbedannya dengan fungsi biasa.","sidebar":"tutorialSidebar"},"basic/attributes":{"id":"basic/attributes","title":"A.49. Attributes","description":"Kita telah beberapa kali menggunakan attributes pada chapter-chapter sebelumnya, contohnya seperti #[derive(Debug)]. Pada chapter ini kita akan bahas tentang apa sebenarnya attributes, macam-macam jenisnya, beserta kegunaannya.","sidebar":"tutorialSidebar"},"basic/basic-memory-management":{"id":"basic/basic-memory-management","title":"A.32. Basic Memory Management","description":"Pada chapter ini kita akan belajar tentang salah satu hal penting dalam topik pemrograman secara general, yaitu memory management yang mencakup pembahasan tentang alamat memori, pointer, heap, stack, dan juga error-error yang terjadi karena kesalahan dalam manajemen memori.","sidebar":"tutorialSidebar"},"basic/block-expression":{"id":"basic/block-expression","title":"A.30. Block Expression","description":"Pada chapter ini kita akan belajar tentang block expression.","sidebar":"tutorialSidebar"},"basic/borrowing":{"id":"basic/borrowing","title":"A.35. Borrowing","description":"Pada chapter ini kita akan belajar tentang apa itu borrowing dalam Rust programming.","sidebar":"tutorialSidebar"},"basic/build-dan-run-program-rust":{"id":"basic/build-dan-run-program-rust","title":"A.2. Build dan Run Program Rust","description":"Cara run program Rust menggunakan cargo. Pada chapter ini kita akan belajar lebih lanjut tentang command untuk proses build dan run dalam program Rust. Sebelumnya kita sudah belajar tentang cargo new dan cargo run, selain command tersebut ada juga command lain yaitu cargo build untuk proses kompilasi build kode program.","sidebar":"tutorialSidebar"},"basic/closures":{"id":"basic/closures","title":"A.46. Closures","description":"Chapter ini membahas tentang closures. Closures sendiri merupakan block fungsi anonimus (anonymous function) yang memiliki kelebihan bisa mengakses item-tem yang posisinya berada di luar block closure tersebut tetapi masih dalam current block scope.","sidebar":"tutorialSidebar"},"basic/datetime":{"id":"basic/datetime","title":"A.50. Date Time","description":"Pada chapter ini kita akan mempelajari tentang tipe data datetime yang ada di Rust programming.","sidebar":"tutorialSidebar"},"basic/enum":{"id":"basic/enum","title":"A.26. Enum","description":"Enum atau enumerated type adalah sebuah tipe data yang digunakan untuk menampung nilai konstan. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/file-path-directory":{"id":"basic/file-path-directory","title":"A.51. File, Path, Directory","description":"Pada chapter ini kita akan belajar tentang beberapa API milik Rust yang disediakan untuk manajemen path dan file system.","sidebar":"tutorialSidebar"},"basic/function":{"id":"basic/function","title":"A.17. Function","description":"Pada chapter ini kita akan belajar tentang function atau fungsi.","sidebar":"tutorialSidebar"},"basic/generics":{"id":"basic/generics","title":"A.37. Generics","description":"Chapter ini membahas tentang generics.","sidebar":"tutorialSidebar"},"basic/hello-rust":{"id":"basic/hello-rust","title":"A.1. Program Pertama \u279c Hello Rust","description":"Belajar membuat program hello world di Rust, dimulai dengan pembuatan program Hello World sederhana.","sidebar":"tutorialSidebar"},"basic/komentar":{"id":"basic/komentar","title":"A.3. Komentar","description":"Pada chapter ini kita akan membahas tentang komentar pada pemrograman Rust. Ada beberapa jenis komentar yang tersedia, namun untuk sekarang yang penting diketahui hanya 2.","sidebar":"tutorialSidebar"},"basic/konstanta":{"id":"basic/konstanta","title":"A.7. Konstanta","description":"Chapter ini membahas tentang konstanta di bahasa Rust.","sidebar":"tutorialSidebar"},"basic/lifetime":{"id":"basic/lifetime","title":"A.42. Lifetime","description":"Pada chapter ini kita akan belajar tentang lifetime. Lifetime adalah yang digunakan oleh Rust compiler untuk memonitor umur dari references agar tetap dianggap valid.","sidebar":"tutorialSidebar"},"basic/method":{"id":"basic/method","title":"A.25. Method","description":"Pada chapter ini kita akan belajar tentang method beserta perbedaannya dengan associated function.","sidebar":"tutorialSidebar"},"basic/module-basic":{"id":"basic/module-basic","title":"A.20. Module System \u279c Module","description":"Module adalah salah satu chapter yang cukup penting dalam pemrograman Rust. Pada bagian ini kita akan mempelajari dasarnya.","sidebar":"tutorialSidebar"},"basic/module-inline":{"id":"basic/module-inline","title":"A.21. Module System \u279c Inline Module","description":"Pada chapter sebelumnya kita telah belajar cara manajemen module. Pembahasan tersebut dilanjut pada chapter ini, yaitu tentang inline module.","sidebar":"tutorialSidebar"},"basic/module-scope-item-access":{"id":"basic/module-scope-item-access","title":"A.22. Module System \u279c Scope & Akses Item","description":"Pembahasan chapter ini masih dalam lingkup module system, yaitu tentang scope dan pengakesan module item.","sidebar":"tutorialSidebar"},"basic/operator":{"id":"basic/operator","title":"A.8. Operator","description":"Chapter ini membahas mengenai operator pada pemrograman rust.","sidebar":"tutorialSidebar"},"basic/option-type":{"id":"basic/option-type","title":"A.38. Tipe Data \u279c Option","description":"Option adalah salah satu tipe data penting pada Rust programming, digunakan untuk menampung data yang isinya bisa berpotensi kosong (None). Chapter ini membahas tentang tipe data tersebut.","sidebar":"tutorialSidebar"},"basic/ownership":{"id":"basic/ownership","title":"A.34. Ownership","description":"Chapter ini berisi pembahasan tentang ownership, bagaimana Rust melakukan manajemen memory dengan menerapkan approach ownership ini.","sidebar":"tutorialSidebar"},"basic/package-crate":{"id":"basic/package-crate","title":"A.19. Module System \u279c Package & Crate","description":"Chapter ini membahas mengenai konsep package dan path dalam Rust programming. Pembelajaran dimulai dari pembahasan mengenai konsep crate terlebih dahulu, kemudian masuk ke package.","sidebar":"tutorialSidebar"},"basic/path-item":{"id":"basic/path-item","title":"A.18. Module System \u279c Path & Item","description":"Chapter ini membahas tentang konsep path dan item dalam Rust programming.","sidebar":"tutorialSidebar"},"basic/pattern-matching":{"id":"basic/pattern-matching","title":"A.40. Pattern Matching","description":"Chapter ini membahas tentang pattern matching, sebuah teknik yang lebih advance dibanding seleksi kondisi biasa.","sidebar":"tutorialSidebar"},"basic/perulangan-for-in":{"id":"basic/perulangan-for-in","title":"A.12. Perulangan \u279c for in","description":"for in adalah salah satu keyword untuk operasi perulangan yang ada di Rust selain loop dan while. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/perulangan-loop-break-continue-label":{"id":"basic/perulangan-loop-break-continue-label","title":"A.11. Perulangan \u279c loop, break, continue, label","description":"Selain keyword while, ada juga keyword loop yang fungsi dasarnya adalah sama, yaitu untuk perulangan.","sidebar":"tutorialSidebar"},"basic/perulangan-while":{"id":"basic/perulangan-while","title":"A.10. Perulangan \u279c while","description":"Di Rust ada beberapa cara untuk melakukan perulangan, salah satunya adalah dengan menggunakan keyword while, dan pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/pointer-references":{"id":"basic/pointer-references","title":"A.33. Pointer & References","description":"Chapter ini membahas tentang apa itu pointer, references, dan dereferences. Pembelajaran dimulai tentang konsep dan praktik dasar tentang ketiga topik tersebut, kemudian diikuti dengan pembahasan tentang karakteristik pointer & reference.","sidebar":"tutorialSidebar"},"basic/result-type":{"id":"basic/result-type","title":"A.39. Tipe Data \u279c Result","description":"Chapter ini membahas tentang tipe data Result. Tipe data ini digunakan untuk menampung nilai hasil suatu proses yang isinya adalah bisa sukses (Ok) atau error (Err).","sidebar":"tutorialSidebar"},"basic/seleksi-kondisi-if":{"id":"basic/seleksi-kondisi-if","title":"A.9. Seleksi Kondisi \u279c if, else if, else","description":"Pada chapter ini kita akan bahas tentang penerapan if untuk kontrol alur program.","sidebar":"tutorialSidebar"},"basic/shadowing":{"id":"basic/shadowing","title":"A.31. Shadowing","description":"Pada chapter ini kita akan belajar tentang shadowing pada variable dan apa perbedaannya dibanding variable mutable.","sidebar":"tutorialSidebar"},"basic/slice":{"id":"basic/slice","title":"A.14. Slice (Basic)","description":"Pada bab ini kita belajar tentang apa itu slice, apa perbedaan slice dan array, slicing atau borrowing pada slice, dan juga slice mutability.","sidebar":"tutorialSidebar"},"basic/slice-memory-management":{"id":"basic/slice-memory-management","title":"A.43. Slice Memory Management","description":"Kita telah mempelajari tipe data Array dan Vector, serta sudah beberapa kali menggunakan tipe data string slice (String). 3 tipe data itu memiliki kemiripan, yaitu kesemuanya termasuk dalam kategori tipe data slice.","sidebar":"tutorialSidebar"},"basic/static":{"id":"basic/static","title":"A.41. Static Item","description":"Pada chapter ini kita akan bahas tentang apa itu static item, dan perbedaanya dibanding konstanta.","sidebar":"tutorialSidebar"},"basic/string-slice-vs-string-literal":{"id":"basic/string-slice-vs-string-literal","title":"A.44. String Literal (&str) vs. String Custom Type","description":"Pada chapter sebelumnya kita telah membahas tentang bagaimana data slice di-manage di memory. Ada beberapa tipe data yang masuk dalam kategori slice, yang salah satunya adalah string slice atau String.","sidebar":"tutorialSidebar"},"basic/struct":{"id":"basic/struct","title":"A.23. Struct","description":"Pada chapter ini kita akan belajar tentang struct.","sidebar":"tutorialSidebar"},"basic/tipe-data-custom-type-string-slice":{"id":"basic/tipe-data-custom-type-string-slice","title":"A.45. Tipe Data \u279c String Custom Type","description":"Pembahasan kali ini lingkupnya masih dalam topik custom type String.","sidebar":"tutorialSidebar"},"basic/tipe-data-primitive-scalar":{"id":"basic/tipe-data-primitive-scalar","title":"A.5. Tipe Data \u279c Primitive Scalar","description":"Tipe data di Rust dikategorikan menjadi beberapa group, salah satunya adalah group tipe data primitif scalar atau biasa disebut scalar types. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/tipe-data-string-literal":{"id":"basic/tipe-data-string-literal","title":"A.6. Tipe Data \u279c String Literal (&str)","description":"String adalah tipe data penting dalam pemrograman manapun. Biasanya tiap bahasa punya cara berbeda dalam meng-handle tipe ini. Di bahasa Rust, ada dua jenis tipe data string:","sidebar":"tutorialSidebar"},"basic/trait-function":{"id":"basic/trait-function","title":"A.47. Trait \u279c Function (Fn, FnMut, FnOnce)","description":"Chapter ini merupakan topik lanjutan dari chapter sebelumnya, di sini kita akan bahas beberapa jenis trait yang digunakan di closure.","sidebar":"tutorialSidebar"},"basic/trait-iterator":{"id":"basic/trait-iterator","title":"A.48. Trait \u279c Iterator","description":"Iterator adalah salah satu trait dan tipe data custom penting pada Rust programming, gunanya untuk iterasi data. Di chapter ini kita akan mempelajarinya beserta beberapa module item lainnya yang masih relevan dengan topik Iterator.","sidebar":"tutorialSidebar"},"basic/traits":{"id":"basic/traits","title":"A.36. Traits","description":"Trait jika diartikan dalam bahasa Indonesia artinya adalah sifat. Chapter ini akan membahas tentang apa itu trait, apa kegunaannya, dan bagaimana cara penerapannya di Rust programming.","sidebar":"tutorialSidebar"},"basic/tuple":{"id":"basic/tuple","title":"A.15. Tipe Data \u279c Tuple","description":"Pada chapter ini kita akan membahas tentang tipe data kolektif bernama Tuple.","sidebar":"tutorialSidebar"},"basic/type-alias-casting":{"id":"basic/type-alias-casting","title":"A.27. Type Alias & Casting","description":"Chapter ini membahas tentang type alias dan juga casting (explicit conversion) pada tipe data primitif scalar.","sidebar":"tutorialSidebar"},"basic/use":{"id":"basic/use","title":"A.29. Module System \u279c Use, Import, Re-export","description":"Keyword use digunakan untuk dua hal, yaitu import path dan re-export path. Sebenarnya kita telah mempelajari kedua penerapan tersebut pada beberapa chapter sebelumnya. Pada chapter ini kita akan ulang lagi pembahasan agar lebih jelas.","sidebar":"tutorialSidebar"},"basic/variabel":{"id":"basic/variabel","title":"A.4. Variabel","description":"Rust merupakan bahasa yang kalau dikategorikan berdasarkan type system-nya adalah statically typed, yang artinya semua tipe data harus diketahui saat kompilasi (compile time).","sidebar":"tutorialSidebar"},"basic/vector":{"id":"basic/vector","title":"A.16. Tipe Data \u279c Vector","description":"Pada chapter ini kita akan belajar tetang tipe data Vector. Vector adalah tipe data seperti array tapi dinamis. Dinamis di sini artinya bisa bertambah dan berkurang kapanpun sesuai kebutuhan.","sidebar":"tutorialSidebar"},"basic/visibility-privacy":{"id":"basic/visibility-privacy","title":"A.28. Module System \u279c Visibility & Privacy","description":"Kita sebenarnya sudah mempelajari banyak hal yang berhubungan dengan visibility & privacy pada beberapa chapter sebelumnya. Jika pembaca mempelajari ebook ini secara urut, maka pastinya sudah familiar dengan keyword pub, self, crate, dan super.","sidebar":"tutorialSidebar"},"CONTRIBUTING":{"id":"CONTRIBUTING","title":"Contribution & Tech Stack","description":"Ebook Dasar Pemrograman Rust adalah project open source. Siapapun bebas untuk berkontribusi di sini, bisa dalam bentuk perbaikan typo, update kalimat, maupun submit tulisan baru.","sidebar":"tutorialSidebar"},"download-pdf":{"id":"download-pdf","title":"Download versi PDF","description":"Ebook Dasar Pemrograman Rust bisa di-download dalam bentuk file PDF, silakan gunakan link berikut:","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"Belajar Rust (Gratis!)","description":"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.","sidebar":"tutorialSidebar"},"installation/instalasi-rust":{"id":"installation/instalasi-rust","title":"Instalasi Rust","description":"Pada chapter ini kita akan belajar cara instalasi Rust. Pembaca bisa mengikuti panduan instalasi ini, atau langsung saja navigasi ke https://www.rust-lang.org/tools/install.","sidebar":"tutorialSidebar"},"installation/rust-editor-plugin":{"id":"installation/rust-editor-plugin","title":"Rust Editor & Plugin","description":"Pemilihan editor dan plugin","sidebar":"tutorialSidebar"},"LICENSE":{"id":"LICENSE","title":"Lisensi & Distribusi Konten","description":"Ebook Dasar Pemrograman Rust gratis untuk disebarluaskan secara bebas, dengan catatan sesuai dengan aturan lisensi CC BY-SA 4.0 yang kurang lebih sebagai berikut:","sidebar":"tutorialSidebar"},"pengelanan-rust-programming":{"id":"pengelanan-rust-programming","title":"Pengenalan Rust Programming","description":"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdasarpemrogramanrust=self.webpackChunkdasarpemrogramanrust||[]).push([[53],{1109:a=>{a.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Dasar Pemrograman Rust","href":"/","docId":"index"},{"type":"link","label":"Pengenalan Rust Programming","href":"/pengelanan-rust-programming","docId":"pengelanan-rust-programming"},{"type":"link","label":"Contribution & Tech Stack","href":"/CONTRIBUTING","docId":"CONTRIBUTING"},{"type":"link","label":"Download versi PDF","href":"/download-pdf","docId":"download-pdf"},{"type":"link","label":"Lisensi & Distribusi Konten","href":"/LICENSE","docId":"LICENSE"},{"type":"category","label":"Persiapan dan Instalasi","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Instalasi Rust","href":"/installation/instalasi-rust","docId":"installation/instalasi-rust"},{"type":"link","label":"Rust Editor & Plugin","href":"/installation/rust-editor-plugin","docId":"installation/rust-editor-plugin"}]},{"type":"category","label":"Pemrograman Rust Dasar","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"A.1. Program Pertama \u279c Hello Rust","href":"/basic/hello-rust","docId":"basic/hello-rust"},{"type":"link","label":"A.2. Build dan Run Program Rust","href":"/basic/build-dan-run-program-rust","docId":"basic/build-dan-run-program-rust"},{"type":"link","label":"A.3. Komentar","href":"/basic/komentar","docId":"basic/komentar"},{"type":"link","label":"A.4. Variabel","href":"/basic/variabel","docId":"basic/variabel"},{"type":"link","label":"A.5. Tipe Data \u279c Primitive Scalar","href":"/basic/tipe-data-primitive-scalar","docId":"basic/tipe-data-primitive-scalar"},{"type":"link","label":"A.6. Tipe Data \u279c String Literal (&str)","href":"/basic/tipe-data-string-literal","docId":"basic/tipe-data-string-literal"},{"type":"link","label":"A.7. Konstanta","href":"/basic/konstanta","docId":"basic/konstanta"},{"type":"link","label":"A.8. Operator","href":"/basic/operator","docId":"basic/operator"},{"type":"link","label":"A.9. Seleksi Kondisi \u279c if, else if, else","href":"/basic/seleksi-kondisi-if","docId":"basic/seleksi-kondisi-if"},{"type":"link","label":"A.10. Perulangan \u279c while","href":"/basic/perulangan-while","docId":"basic/perulangan-while"},{"type":"link","label":"A.11. Perulangan \u279c loop, break, continue, label","href":"/basic/perulangan-loop-break-continue-label","docId":"basic/perulangan-loop-break-continue-label"},{"type":"link","label":"A.12. Perulangan \u279c for in","href":"/basic/perulangan-for-in","docId":"basic/perulangan-for-in"},{"type":"link","label":"A.13. Array","href":"/basic/array","docId":"basic/array"},{"type":"link","label":"A.14. Slice (Basic)","href":"/basic/slice","docId":"basic/slice"},{"type":"link","label":"A.15. Tuple","href":"/basic/tuple","docId":"basic/tuple"},{"type":"link","label":"A.16. Vector","href":"/basic/vector","docId":"basic/vector"},{"type":"link","label":"A.17. Function","href":"/basic/function","docId":"basic/function"},{"type":"link","label":"A.18. Module System \u279c Path & Item","href":"/basic/path-item","docId":"basic/path-item"},{"type":"link","label":"A.19. Module System \u279c Package & Crate","href":"/basic/package-crate","docId":"basic/package-crate"},{"type":"link","label":"A.20. Module System \u279c Module","href":"/basic/module-basic","docId":"basic/module-basic"},{"type":"link","label":"A.21. Module System \u279c Inline Module","href":"/basic/module-inline","docId":"basic/module-inline"},{"type":"link","label":"A.22. Module System \u279c Scope & Akses Item","href":"/basic/module-scope-item-access","docId":"basic/module-scope-item-access"},{"type":"link","label":"A.23. Struct","href":"/basic/struct","docId":"basic/struct"},{"type":"link","label":"A.24. Associated Function","href":"/basic/associated-function","docId":"basic/associated-function"},{"type":"link","label":"A.25. Method","href":"/basic/method","docId":"basic/method"},{"type":"link","label":"A.26. Enum","href":"/basic/enum","docId":"basic/enum"},{"type":"link","label":"A.27. Type Alias & Casting","href":"/basic/type-alias-casting","docId":"basic/type-alias-casting"},{"type":"link","label":"A.28. Module System \u279c Visibility & Privacy","href":"/basic/visibility-privacy","docId":"basic/visibility-privacy"},{"type":"link","label":"A.29. Module System \u279c Use, Import, Re-export","href":"/basic/use","docId":"basic/use"},{"type":"link","label":"A.30. Block Expression","href":"/basic/block-expression","docId":"basic/block-expression"},{"type":"link","label":"A.31. Shadowing","href":"/basic/shadowing","docId":"basic/shadowing"},{"type":"link","label":"A.32. Basic Memory Management","href":"/basic/basic-memory-management","docId":"basic/basic-memory-management"},{"type":"link","label":"A.33. Pointer & References","href":"/basic/pointer-references","docId":"basic/pointer-references"},{"type":"link","label":"A.34. Ownership","href":"/basic/ownership","docId":"basic/ownership"},{"type":"link","label":"A.35. Borrowing","href":"/basic/borrowing","docId":"basic/borrowing"},{"type":"link","label":"A.36. Traits","href":"/basic/traits","docId":"basic/traits"},{"type":"link","label":"A.37. Generics","href":"/basic/generics","docId":"basic/generics"},{"type":"link","label":"A.38. Tipe Data \u279c Option","href":"/basic/option-type","docId":"basic/option-type"},{"type":"link","label":"A.39. Tipe Data \u279c Result","href":"/basic/result-type","docId":"basic/result-type"},{"type":"link","label":"A.40. Pattern Matching","href":"/basic/pattern-matching","docId":"basic/pattern-matching"},{"type":"link","label":"A.41. Static Item","href":"/basic/static","docId":"basic/static"},{"type":"link","label":"A.42. Lifetime","href":"/basic/lifetime","docId":"basic/lifetime"},{"type":"link","label":"A.43. Slice Memory Management","href":"/basic/slice-memory-management","docId":"basic/slice-memory-management"},{"type":"link","label":"A.44. String Literal (&str) vs. String Custom Type","href":"/basic/string-slice-vs-string-literal","docId":"basic/string-slice-vs-string-literal"},{"type":"link","label":"A.45. Tipe Data \u279c String Custom Type","href":"/basic/tipe-data-custom-type-string-slice","docId":"basic/tipe-data-custom-type-string-slice"},{"type":"link","label":"A.46. Closures","href":"/basic/closures","docId":"basic/closures"},{"type":"link","label":"A.47. Trait \u279c Function (Fn, FnMut, FnOnce)","href":"/basic/trait-function","docId":"basic/trait-function"},{"type":"link","label":"A.48. Trait \u279c Iterator","href":"/basic/trait-iterator","docId":"basic/trait-iterator"},{"type":"link","label":"A.49. Attributes","href":"/basic/attributes","docId":"basic/attributes"},{"type":"link","label":"A.50. Date Time","href":"/basic/datetime","docId":"basic/datetime"},{"type":"link","label":"A.51. File, Path, Directory","href":"/basic/file-path-directory","docId":"basic/file-path-directory"}]}]},"docs":{"basic/array":{"id":"basic/array","title":"A.13. Tipe Data \u279c Array","description":"Belajar array pada rust. Contoh penerapan array, iterasi array, dan operasi lainnya pada array","sidebar":"tutorialSidebar"},"basic/associated-function":{"id":"basic/associated-function","title":"A.24. Associated Function","description":"Chapter ini membahas tentang associated function. Kita akan belajar apa itu associated function dan apa perbedannya dengan fungsi biasa.","sidebar":"tutorialSidebar"},"basic/attributes":{"id":"basic/attributes","title":"A.49. Attributes","description":"Kita telah beberapa kali menggunakan attributes pada chapter-chapter sebelumnya, contohnya seperti #[derive(Debug)]. Pada chapter ini kita akan bahas tentang apa sebenarnya attributes, macam-macam jenisnya, beserta kegunaannya.","sidebar":"tutorialSidebar"},"basic/basic-memory-management":{"id":"basic/basic-memory-management","title":"A.32. Basic Memory Management","description":"Pada chapter ini kita akan belajar tentang salah satu hal penting dalam topik pemrograman secara general, yaitu memory management yang mencakup pembahasan tentang alamat memori, pointer, heap, stack, dan juga error-error yang terjadi karena kesalahan dalam manajemen memori.","sidebar":"tutorialSidebar"},"basic/block-expression":{"id":"basic/block-expression","title":"A.30. Block Expression","description":"Pada chapter ini kita akan belajar tentang block expression.","sidebar":"tutorialSidebar"},"basic/borrowing":{"id":"basic/borrowing","title":"A.35. Borrowing","description":"Pada chapter ini kita akan belajar tentang apa itu borrowing dalam Rust programming.","sidebar":"tutorialSidebar"},"basic/build-dan-run-program-rust":{"id":"basic/build-dan-run-program-rust","title":"A.2. Build dan Run Program Rust","description":"Cara run program Rust menggunakan cargo. Pada chapter ini kita akan belajar lebih lanjut tentang command untuk proses build dan run dalam program Rust. Sebelumnya kita sudah belajar tentang cargo new dan cargo run, selain command tersebut ada juga command lain yaitu cargo build untuk proses kompilasi build kode program.","sidebar":"tutorialSidebar"},"basic/closures":{"id":"basic/closures","title":"A.46. Closures","description":"Chapter ini membahas tentang closures. Closures sendiri merupakan block fungsi anonimus (anonymous function) yang memiliki kelebihan bisa mengakses item-tem yang posisinya berada di luar block closure tersebut tetapi masih dalam current block scope.","sidebar":"tutorialSidebar"},"basic/datetime":{"id":"basic/datetime","title":"A.50. Date Time","description":"Pada chapter ini kita akan mempelajari tentang tipe data datetime yang ada di Rust programming.","sidebar":"tutorialSidebar"},"basic/enum":{"id":"basic/enum","title":"A.26. Enum","description":"Enum atau enumerated type adalah sebuah tipe data yang digunakan untuk menampung nilai konstan. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/file-path-directory":{"id":"basic/file-path-directory","title":"A.51. File, Path, Directory","description":"Pada chapter ini kita akan belajar tentang beberapa API milik Rust yang disediakan untuk manajemen path dan file system.","sidebar":"tutorialSidebar"},"basic/function":{"id":"basic/function","title":"A.17. Function","description":"Pada chapter ini kita akan belajar tentang function atau fungsi.","sidebar":"tutorialSidebar"},"basic/generics":{"id":"basic/generics","title":"A.37. Generics","description":"Chapter ini membahas tentang generics.","sidebar":"tutorialSidebar"},"basic/hello-rust":{"id":"basic/hello-rust","title":"A.1. Program Pertama \u279c Hello Rust","description":"Belajar membuat program hello world di Rust, dimulai dengan pembuatan program Hello World sederhana.","sidebar":"tutorialSidebar"},"basic/komentar":{"id":"basic/komentar","title":"A.3. Komentar","description":"Pada chapter ini kita akan membahas tentang komentar pada pemrograman Rust. Ada beberapa jenis komentar yang tersedia, namun untuk sekarang yang penting diketahui hanya 2.","sidebar":"tutorialSidebar"},"basic/konstanta":{"id":"basic/konstanta","title":"A.7. Konstanta","description":"Chapter ini membahas tentang konstanta di bahasa Rust.","sidebar":"tutorialSidebar"},"basic/lifetime":{"id":"basic/lifetime","title":"A.42. Lifetime","description":"Pada chapter ini kita akan belajar tentang lifetime. Lifetime adalah yang digunakan oleh Rust compiler untuk memonitor umur dari references agar tetap dianggap valid.","sidebar":"tutorialSidebar"},"basic/method":{"id":"basic/method","title":"A.25. Method","description":"Pada chapter ini kita akan belajar tentang method beserta perbedaannya dengan associated function.","sidebar":"tutorialSidebar"},"basic/module-basic":{"id":"basic/module-basic","title":"A.20. Module System \u279c Module","description":"Module adalah salah satu chapter yang cukup penting dalam pemrograman Rust. Pada bagian ini kita akan mempelajari dasarnya.","sidebar":"tutorialSidebar"},"basic/module-inline":{"id":"basic/module-inline","title":"A.21. Module System \u279c Inline Module","description":"Pada chapter sebelumnya kita telah belajar cara manajemen module. Pembahasan tersebut dilanjut pada chapter ini, yaitu tentang inline module.","sidebar":"tutorialSidebar"},"basic/module-scope-item-access":{"id":"basic/module-scope-item-access","title":"A.22. Module System \u279c Scope & Akses Item","description":"Pembahasan chapter ini masih dalam lingkup module system, yaitu tentang scope dan pengakesan module item.","sidebar":"tutorialSidebar"},"basic/operator":{"id":"basic/operator","title":"A.8. Operator","description":"Chapter ini membahas mengenai operator pada pemrograman rust.","sidebar":"tutorialSidebar"},"basic/option-type":{"id":"basic/option-type","title":"A.38. Tipe Data \u279c Option","description":"Option adalah salah satu tipe data penting pada Rust programming, digunakan untuk menampung data yang isinya bisa berpotensi kosong (None). Chapter ini membahas tentang tipe data tersebut.","sidebar":"tutorialSidebar"},"basic/ownership":{"id":"basic/ownership","title":"A.34. Ownership","description":"Chapter ini berisi pembahasan tentang ownership, bagaimana Rust melakukan manajemen memory dengan menerapkan approach ownership ini.","sidebar":"tutorialSidebar"},"basic/package-crate":{"id":"basic/package-crate","title":"A.19. Module System \u279c Package & Crate","description":"Chapter ini membahas mengenai konsep package dan path dalam Rust programming. Pembelajaran dimulai dari pembahasan mengenai konsep crate terlebih dahulu, kemudian masuk ke package.","sidebar":"tutorialSidebar"},"basic/path-item":{"id":"basic/path-item","title":"A.18. Module System \u279c Path & Item","description":"Chapter ini membahas tentang konsep path dan item dalam Rust programming.","sidebar":"tutorialSidebar"},"basic/pattern-matching":{"id":"basic/pattern-matching","title":"A.40. Pattern Matching","description":"Chapter ini membahas tentang pattern matching, sebuah teknik yang lebih advance dibanding seleksi kondisi biasa.","sidebar":"tutorialSidebar"},"basic/perulangan-for-in":{"id":"basic/perulangan-for-in","title":"A.12. Perulangan \u279c for in","description":"for in adalah salah satu keyword untuk operasi perulangan yang ada di Rust selain loop dan while. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/perulangan-loop-break-continue-label":{"id":"basic/perulangan-loop-break-continue-label","title":"A.11. Perulangan \u279c loop, break, continue, label","description":"Selain keyword while, ada juga keyword loop yang fungsi dasarnya adalah sama, yaitu untuk perulangan.","sidebar":"tutorialSidebar"},"basic/perulangan-while":{"id":"basic/perulangan-while","title":"A.10. Perulangan \u279c while","description":"Di Rust ada beberapa cara untuk melakukan perulangan, salah satunya adalah dengan menggunakan keyword while, dan pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/pointer-references":{"id":"basic/pointer-references","title":"A.33. Pointer & References","description":"Chapter ini membahas tentang apa itu pointer, references, dan dereferences. Pembelajaran dimulai tentang konsep dan praktik dasar tentang ketiga topik tersebut, kemudian diikuti dengan pembahasan tentang karakteristik pointer & reference.","sidebar":"tutorialSidebar"},"basic/result-type":{"id":"basic/result-type","title":"A.39. Tipe Data \u279c Result","description":"Chapter ini membahas tentang tipe data Result. Tipe data ini digunakan untuk menampung nilai hasil suatu proses yang isinya adalah bisa sukses (Ok) atau error (Err).","sidebar":"tutorialSidebar"},"basic/seleksi-kondisi-if":{"id":"basic/seleksi-kondisi-if","title":"A.9. Seleksi Kondisi \u279c if, else if, else","description":"Pada chapter ini kita akan bahas tentang penerapan if untuk kontrol alur program.","sidebar":"tutorialSidebar"},"basic/shadowing":{"id":"basic/shadowing","title":"A.31. Shadowing","description":"Pada chapter ini kita akan belajar tentang shadowing pada variable dan apa perbedaannya dibanding variable mutable.","sidebar":"tutorialSidebar"},"basic/slice":{"id":"basic/slice","title":"A.14. Slice (Basic)","description":"Pada bab ini kita belajar tentang apa itu slice, apa perbedaan slice dan array, slicing atau borrowing pada slice, dan juga slice mutability.","sidebar":"tutorialSidebar"},"basic/slice-memory-management":{"id":"basic/slice-memory-management","title":"A.43. Slice Memory Management","description":"Kita telah mempelajari tipe data Array dan Vector, serta sudah beberapa kali menggunakan tipe data string slice (String). 3 tipe data itu memiliki kemiripan, yaitu kesemuanya termasuk dalam kategori tipe data slice.","sidebar":"tutorialSidebar"},"basic/static":{"id":"basic/static","title":"A.41. Static Item","description":"Pada chapter ini kita akan bahas tentang apa itu static item, dan perbedaanya dibanding konstanta.","sidebar":"tutorialSidebar"},"basic/string-slice-vs-string-literal":{"id":"basic/string-slice-vs-string-literal","title":"A.44. String Literal (&str) vs. String Custom Type","description":"Pada chapter sebelumnya kita telah membahas tentang bagaimana data slice di-manage di memory. Ada beberapa tipe data yang masuk dalam kategori slice, yang salah satunya adalah string slice atau String.","sidebar":"tutorialSidebar"},"basic/struct":{"id":"basic/struct","title":"A.23. Struct","description":"Pada chapter ini kita akan belajar tentang struct.","sidebar":"tutorialSidebar"},"basic/tipe-data-custom-type-string-slice":{"id":"basic/tipe-data-custom-type-string-slice","title":"A.45. Tipe Data \u279c String Custom Type","description":"Pembahasan kali ini lingkupnya masih dalam topik custom type String.","sidebar":"tutorialSidebar"},"basic/tipe-data-primitive-scalar":{"id":"basic/tipe-data-primitive-scalar","title":"A.5. Tipe Data \u279c Primitive Scalar","description":"Tipe data di Rust dikategorikan menjadi beberapa group, salah satunya adalah group tipe data primitif scalar atau biasa disebut scalar types. Pada chapter ini kita akan mempelajarinya.","sidebar":"tutorialSidebar"},"basic/tipe-data-string-literal":{"id":"basic/tipe-data-string-literal","title":"A.6. Tipe Data \u279c String Literal (&str)","description":"String adalah tipe data penting dalam pemrograman manapun. Biasanya tiap bahasa punya cara berbeda dalam meng-handle tipe ini. Di bahasa Rust, ada dua jenis tipe data string:","sidebar":"tutorialSidebar"},"basic/trait-function":{"id":"basic/trait-function","title":"A.47. Trait \u279c Function (Fn, FnMut, FnOnce)","description":"Chapter ini merupakan topik lanjutan dari chapter sebelumnya, di sini kita akan bahas beberapa jenis trait yang digunakan di closure.","sidebar":"tutorialSidebar"},"basic/trait-iterator":{"id":"basic/trait-iterator","title":"A.48. Trait \u279c Iterator","description":"Iterator adalah salah satu trait dan tipe data custom penting pada Rust programming, gunanya untuk iterasi data. Di chapter ini kita akan mempelajarinya beserta beberapa module item lainnya yang masih relevan dengan topik Iterator.","sidebar":"tutorialSidebar"},"basic/traits":{"id":"basic/traits","title":"A.36. Traits","description":"Trait jika diartikan dalam bahasa Indonesia artinya adalah sifat. Chapter ini akan membahas tentang apa itu trait, apa kegunaannya, dan bagaimana cara penerapannya di Rust programming.","sidebar":"tutorialSidebar"},"basic/tuple":{"id":"basic/tuple","title":"A.15. Tipe Data \u279c Tuple","description":"Pada chapter ini kita akan membahas tentang tipe data kolektif bernama Tuple.","sidebar":"tutorialSidebar"},"basic/type-alias-casting":{"id":"basic/type-alias-casting","title":"A.27. Type Alias & Casting","description":"Chapter ini membahas tentang type alias dan juga casting (explicit conversion) pada tipe data primitif scalar.","sidebar":"tutorialSidebar"},"basic/use":{"id":"basic/use","title":"A.29. Module System \u279c Use, Import, Re-export","description":"Keyword use digunakan untuk dua hal, yaitu import path dan re-export path. Sebenarnya kita telah mempelajari kedua penerapan tersebut pada beberapa chapter sebelumnya. Pada chapter ini kita akan ulang lagi pembahasan agar lebih jelas.","sidebar":"tutorialSidebar"},"basic/variabel":{"id":"basic/variabel","title":"A.4. Variabel","description":"Rust merupakan bahasa yang kalau dikategorikan berdasarkan type system-nya adalah statically typed, yang artinya semua tipe data harus diketahui saat kompilasi (compile time).","sidebar":"tutorialSidebar"},"basic/vector":{"id":"basic/vector","title":"A.16. Tipe Data \u279c Vector","description":"Pada chapter ini kita akan belajar tetang tipe data Vector. Vector adalah tipe data seperti array tapi dinamis. Dinamis di sini artinya bisa bertambah dan berkurang kapanpun sesuai kebutuhan.","sidebar":"tutorialSidebar"},"basic/visibility-privacy":{"id":"basic/visibility-privacy","title":"A.28. Module System \u279c Visibility & Privacy","description":"Kita sebenarnya sudah mempelajari banyak hal yang berhubungan dengan visibility & privacy pada beberapa chapter sebelumnya. Jika pembaca mempelajari ebook ini secara urut, maka pastinya sudah familiar dengan keyword pub, self, crate, dan super.","sidebar":"tutorialSidebar"},"CONTRIBUTING":{"id":"CONTRIBUTING","title":"Contribution & Tech Stack","description":"Ebook Dasar Pemrograman Rust adalah project open source. Siapapun bebas untuk berkontribusi di sini, bisa dalam bentuk perbaikan typo, update kalimat, maupun submit tulisan baru.","sidebar":"tutorialSidebar"},"download-pdf":{"id":"download-pdf","title":"Download versi PDF","description":"Ebook Dasar Pemrograman Rust bisa di-download dalam bentuk file PDF, silakan gunakan link berikut:","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"Tutorial Belajar Rust (Gratis!)","description":"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.","sidebar":"tutorialSidebar"},"installation/instalasi-rust":{"id":"installation/instalasi-rust","title":"Instalasi Rust","description":"Pada chapter ini kita akan belajar cara instalasi Rust. Pembaca bisa mengikuti panduan instalasi ini, atau langsung saja navigasi ke https://www.rust-lang.org/tools/install.","sidebar":"tutorialSidebar"},"installation/rust-editor-plugin":{"id":"installation/rust-editor-plugin","title":"Rust Editor & Plugin","description":"Pemilihan editor dan plugin","sidebar":"tutorialSidebar"},"LICENSE":{"id":"LICENSE","title":"Lisensi & Distribusi Konten","description":"Ebook Dasar Pemrograman Rust gratis untuk disebarluaskan secara bebas, dengan catatan sesuai dengan aturan lisensi CC BY-SA 4.0 yang kurang lebih sebagai berikut:","sidebar":"tutorialSidebar"},"pengelanan-rust-programming":{"id":"pengelanan-rust-programming","title":"Pengenalan Rust Programming","description":"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.753abc35.js b/assets/js/c377a04b.753abc35.js deleted file mode 100644 index d4e1f502..00000000 --- a/assets/js/c377a04b.753abc35.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdasarpemrogramanrust=self.webpackChunkdasarpemrogramanrust||[]).push([[6971],{3905:(a,e,t)=>{t.d(e,{Zo:()=>l,kt:()=>g});var n=t(7294);function r(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function o(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,n)}return t}function i(a){for(var e=1;e=0||(r[t]=a[t]);return r}(a,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(a);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(r[t]=a[t])}return r}var u=n.createContext({}),p=function(a){var e=n.useContext(u),t=e;return a&&(t="function"==typeof a?a(e):i(i({},e),a)),t},l=function(a){var e=p(a.components);return n.createElement(u.Provider,{value:e},a.children)},m={inlineCode:"code",wrapper:function(a){var e=a.children;return n.createElement(n.Fragment,{},e)}},k=n.forwardRef((function(a,e){var t=a.components,r=a.mdxType,o=a.originalType,u=a.parentName,l=s(a,["components","mdxType","originalType","parentName"]),k=p(t),g=r,d=k["".concat(u,".").concat(g)]||k[g]||m[g]||o;return t?n.createElement(d,i(i({ref:e},l),{},{components:t})):n.createElement(d,i({ref:e},l))}));function g(a,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof a||r){var o=t.length,i=new Array(o);i[0]=k;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=a,s.mdxType="string"==typeof a?a:r,i[1]=s;for(var p=2;p{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var n=t(7462),r=(t(7294),t(3905));const o={sidebar_position:1,title:"Belajar Rust (Gratis!)",sidebar_label:"Dasar Pemrograman Rust"},i=void 0,s={unversionedId:"index",id:"index",title:"Belajar Rust (Gratis!)",description:"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Belajar Rust (Gratis!)",sidebar_label:"Dasar Pemrograman Rust"},sidebar:"tutorialSidebar",next:{title:"Pengenalan Rust Programming",permalink:"/pengelanan-rust-programming"}},u={},p=[{value:"Download Ebook File (pdf)",id:"download-ebook-file-pdf",level:2},{value:"Source Code Praktik",id:"source-code-praktik",level:2},{value:"Kontribusi",id:"kontribusi",level:2},{value:"Lisensi dan Status FOSSA",id:"lisensi-dan-status-fossa",level:2},{value:"Author & Maintainer",id:"author--maintainer",level:2}],l={toc:p};function m(a){let{components:e,...t}=a;return(0,r.kt)("wrapper",(0,n.Z)({},l,t,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Rust adalah sebuah bahasa pemrograman ",(0,r.kt)("em",{parentName:"p"},"general purpose")," yang fokus pada ",(0,r.kt)("em",{parentName:"p"},"performance"),", ",(0,r.kt)("em",{parentName:"p"},"type safety"),", dan ",(0,r.kt)("em",{parentName:"p"},"concurrency"),". Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup ",(0,r.kt)("em",{parentName:"p"},"low-level")," tapi tetap men-support fitur yang sifatnya ",(0,r.kt)("em",{parentName:"p"},"high-level"),"."),(0,r.kt)("p",null,"E-book Dasar Pemrograman Rust ini dibuat dengan harapan bisa menjadi alternatif referensi belajar Rust, disajikan dengan penyampaian yang cocok untuk pembaca di level ",(0,r.kt)("em",{parentName:"p"},"beginner"),", dan gratis. Buku ini ada bukan untuk menggantikan ",(0,r.kt)("em",{parentName:"p"},"the book"),", melainkan sebagai komplemen."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://www.rust-lang.org/learn"},"Dokumentasi ",(0,r.kt)("em",{parentName:"a"},"official")," Rust")," sangat lengkap, dan aktif di-update oleh komunitas. Jika pembaca sudah memiliki banyak pengalaman dalam programming, sudah paham mengenai system programming seperti C atau C++, maka penulis sangat anjurkan untuk langsung menggunakan ",(0,r.kt)("a",{parentName:"p",href:"https://www.rust-lang.org/learn"},(0,r.kt)("em",{parentName:"a"},"the book"))," sebagai referensi belajar."),(0,r.kt)("p",null,"Versi e-book: ",(0,r.kt)("strong",{parentName:"p"},"v1.0.20231224"),", dan versi ",(0,r.kt)("a",{parentName:"p",href:"https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html"},"Rust 1.65.0"),"."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"E-book ini aktif dalam pengembangan, kami akan tambah terus konten-kontennya. Silakan cek di ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust"},"Github repo")," kami mengenai progress development e-book.")),(0,r.kt)("h2",{id:"download-ebook-file-pdf"},"Download Ebook File (pdf)"),(0,r.kt)("p",null,"Ebook ini bisa di-download dalam bentuk file, silakan gunakan link berikut:"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust/raw/ebooks/dasarpemrogramanrust.pdf?v=v1.0.20231011"},"Dasar Pemrograman Rust.pdf"))),(0,r.kt)("h2",{id:"source-code-praktik"},"Source Code Praktik"),(0,r.kt)("p",null,"Source code contoh program bisa diunduh di ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust-example"},"github.com/novalagung/dasarpemrogramanrust-example"),". Dianjurkan untuk sekedar tidak copy-paste dari source code dalam proses belajar, usahakan tulis sendiri kode program agar cepat terbiasa dengan bahasa Rust."),(0,r.kt)("h2",{id:"kontribusi"},"Kontribusi"),(0,r.kt)("p",null,"Ebook ini merupakan project open source, teruntuk siapapun yang ingin berkontribusi silakan langsung saja cek ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust"},"github.com/novalagung/dasarpemrogramanrust"),". Cek juga ",(0,r.kt)("a",{parentName:"p",href:"https://dasarpemrogramanrust.novalagung.com/CONTRIBUTING"},"halaman kontributor")," untuk melihat list kontributor."),(0,r.kt)("h2",{id:"lisensi-dan-status-fossa"},"Lisensi dan Status FOSSA"),(0,r.kt)("p",null,"Ebook Dasar Pemrograman Rust gratis untuk disebarluaskan secara bebas, baik untuk komersil maupun tidak, dengan catatan harus disertakan credit sumber aslinya (yaitu Dasar Pemrograman Rust atau novalagung) dan tidak mengubah lisensi aslinya (yaitu CC BY-SA 4.0). Lebih jelasnya silakan cek halaman ",(0,r.kt)("a",{parentName:"p",href:"/LICENSE"},"lisensi dan distribusi konten"),"."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://app.fossa.io/projects/git%2Bgithub.com%2Fnovalagung%2Fdasarpemrogramanrust?ref=badge_large"},(0,r.kt)("img",{parentName:"a",src:"https://app.fossa.io/api/projects/git%2Bgithub.com%2Fnovalagung%2Fdasarpemrogramanrust.svg?type=large",alt:"FOSSA Status"}))),(0,r.kt)("h2",{id:"author--maintainer"},"Author & Maintainer"),(0,r.kt)("p",null,"Ebook ini dibuat oleh Noval Agung Prayogo. Untuk pertanyaan, kritik, dan saran, silakan drop email ke ",(0,r.kt)("a",{parentName:"p",href:"mailto:hello@novalagung.com"},"hello@novalagung.com"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.c1a0a7ff.js b/assets/js/c377a04b.c1a0a7ff.js new file mode 100644 index 00000000..10f8947c --- /dev/null +++ b/assets/js/c377a04b.c1a0a7ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdasarpemrogramanrust=self.webpackChunkdasarpemrogramanrust||[]).push([[6971],{3905:(a,e,t)=>{t.d(e,{Zo:()=>l,kt:()=>g});var n=t(7294);function r(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function o(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,n)}return t}function i(a){for(var e=1;e=0||(r[t]=a[t]);return r}(a,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(a);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(r[t]=a[t])}return r}var u=n.createContext({}),p=function(a){var e=n.useContext(u),t=e;return a&&(t="function"==typeof a?a(e):i(i({},e),a)),t},l=function(a){var e=p(a.components);return n.createElement(u.Provider,{value:e},a.children)},m={inlineCode:"code",wrapper:function(a){var e=a.children;return n.createElement(n.Fragment,{},e)}},k=n.forwardRef((function(a,e){var t=a.components,r=a.mdxType,o=a.originalType,u=a.parentName,l=s(a,["components","mdxType","originalType","parentName"]),k=p(t),g=r,d=k["".concat(u,".").concat(g)]||k[g]||m[g]||o;return t?n.createElement(d,i(i({ref:e},l),{},{components:t})):n.createElement(d,i({ref:e},l))}));function g(a,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof a||r){var o=t.length,i=new Array(o);i[0]=k;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=a,s.mdxType="string"==typeof a?a:r,i[1]=s;for(var p=2;p{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var n=t(7462),r=(t(7294),t(3905));const o={sidebar_position:1,title:"Tutorial Belajar Rust (Gratis!)",sidebar_label:"Dasar Pemrograman Rust"},i=void 0,s={unversionedId:"index",id:"index",title:"Tutorial Belajar Rust (Gratis!)",description:"Rust adalah sebuah bahasa pemrograman general purpose yang fokus pada performance, type safety, dan concurrency. Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup low-level tapi tetap men-support fitur yang sifatnya high-level.",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Tutorial Belajar Rust (Gratis!)",sidebar_label:"Dasar Pemrograman Rust"},sidebar:"tutorialSidebar",next:{title:"Pengenalan Rust Programming",permalink:"/pengelanan-rust-programming"}},u={},p=[{value:"Download Ebook File (pdf)",id:"download-ebook-file-pdf",level:2},{value:"Source Code Praktik",id:"source-code-praktik",level:2},{value:"Kontribusi",id:"kontribusi",level:2},{value:"Lisensi dan Status FOSSA",id:"lisensi-dan-status-fossa",level:2},{value:"Author & Maintainer",id:"author--maintainer",level:2}],l={toc:p};function m(a){let{components:e,...t}=a;return(0,r.kt)("wrapper",(0,n.Z)({},l,t,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Rust adalah sebuah bahasa pemrograman ",(0,r.kt)("em",{parentName:"p"},"general purpose")," yang fokus pada ",(0,r.kt)("em",{parentName:"p"},"performance"),", ",(0,r.kt)("em",{parentName:"p"},"type safety"),", dan ",(0,r.kt)("em",{parentName:"p"},"concurrency"),". Bahasa ini diciptakan sebagai alternatif bahasa pemrograman yang berfokus pada hal-hal yang cukup ",(0,r.kt)("em",{parentName:"p"},"low-level")," tapi tetap men-support fitur yang sifatnya ",(0,r.kt)("em",{parentName:"p"},"high-level"),"."),(0,r.kt)("p",null,"E-book Dasar Pemrograman Rust ini dibuat dengan harapan bisa menjadi alternatif referensi belajar Rust, disajikan dengan penyampaian yang cocok untuk pembaca di level ",(0,r.kt)("em",{parentName:"p"},"beginner"),", dan gratis. Buku ini ada bukan untuk menggantikan ",(0,r.kt)("em",{parentName:"p"},"the book"),", melainkan sebagai komplemen."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://www.rust-lang.org/learn"},"Dokumentasi ",(0,r.kt)("em",{parentName:"a"},"official")," Rust")," sangat lengkap, dan aktif di-update oleh komunitas. Jika pembaca sudah memiliki banyak pengalaman dalam programming, sudah paham mengenai system programming seperti C atau C++, maka penulis sangat anjurkan untuk langsung menggunakan ",(0,r.kt)("a",{parentName:"p",href:"https://www.rust-lang.org/learn"},(0,r.kt)("em",{parentName:"a"},"the book"))," sebagai referensi belajar."),(0,r.kt)("p",null,"Versi e-book: ",(0,r.kt)("strong",{parentName:"p"},"v1.0.20231224"),", dan versi ",(0,r.kt)("a",{parentName:"p",href:"https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html"},"Rust 1.65.0"),"."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"E-book ini aktif dalam pengembangan, kami akan tambah terus konten-kontennya. Silakan cek di ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust"},"Github repo")," kami mengenai progress development e-book.")),(0,r.kt)("h2",{id:"download-ebook-file-pdf"},"Download Ebook File (pdf)"),(0,r.kt)("p",null,"Ebook ini bisa di-download dalam bentuk file, silakan gunakan link berikut:"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust/raw/ebooks/dasarpemrogramanrust.pdf?v=v1.0.20231011"},"Dasar Pemrograman Rust.pdf"))),(0,r.kt)("h2",{id:"source-code-praktik"},"Source Code Praktik"),(0,r.kt)("p",null,"Source code contoh program bisa diunduh di ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust-example"},"github.com/novalagung/dasarpemrogramanrust-example"),". Dianjurkan untuk sekedar tidak copy-paste dari source code dalam proses belajar, usahakan tulis sendiri kode program agar cepat terbiasa dengan bahasa Rust."),(0,r.kt)("h2",{id:"kontribusi"},"Kontribusi"),(0,r.kt)("p",null,"Ebook ini merupakan project open source, teruntuk siapapun yang ingin berkontribusi silakan langsung saja cek ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/novalagung/dasarpemrogramanrust"},"github.com/novalagung/dasarpemrogramanrust"),". Cek juga ",(0,r.kt)("a",{parentName:"p",href:"https://dasarpemrogramanrust.novalagung.com/CONTRIBUTING"},"halaman kontributor")," untuk melihat list kontributor."),(0,r.kt)("h2",{id:"lisensi-dan-status-fossa"},"Lisensi dan Status FOSSA"),(0,r.kt)("p",null,"Ebook Dasar Pemrograman Rust gratis untuk disebarluaskan secara bebas, baik untuk komersil maupun tidak, dengan catatan harus disertakan credit sumber aslinya (yaitu Dasar Pemrograman Rust atau novalagung) dan tidak mengubah lisensi aslinya (yaitu CC BY-SA 4.0). Lebih jelasnya silakan cek halaman ",(0,r.kt)("a",{parentName:"p",href:"/LICENSE"},"lisensi dan distribusi konten"),"."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://app.fossa.io/projects/git%2Bgithub.com%2Fnovalagung%2Fdasarpemrogramanrust?ref=badge_large"},(0,r.kt)("img",{parentName:"a",src:"https://app.fossa.io/api/projects/git%2Bgithub.com%2Fnovalagung%2Fdasarpemrogramanrust.svg?type=large",alt:"FOSSA Status"}))),(0,r.kt)("h2",{id:"author--maintainer"},"Author & Maintainer"),(0,r.kt)("p",null,"Ebook ini dibuat oleh Noval Agung Prayogo. Untuk pertanyaan, kritik, dan saran, silakan drop email ke ",(0,r.kt)("a",{parentName:"p",href:"mailto:hello@novalagung.com"},"hello@novalagung.com"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.d5618aa9.js b/assets/js/runtime~main.4c06e9e0.js similarity index 98% rename from assets/js/runtime~main.d5618aa9.js rename to assets/js/runtime~main.4c06e9e0.js index 12832f9e..ca53b770 100644 --- a/assets/js/runtime~main.d5618aa9.js +++ b/assets/js/runtime~main.4c06e9e0.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,d,r={},t={};function b(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return r[e].call(c.exports,c,c.exports,b),c.exports}b.m=r,e=[],b.O=(a,c,f,d)=>{if(!c){var r=1/0;for(i=0;i=d)&&Object.keys(b.O).every((e=>b.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);b.r(d);var r={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,b.d(d,r),d},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,c)=>(b.f[c](e,a),a)),[])),b.u=e=>"assets/js/"+({53:"935f2afb",274:"016a0787",620:"2bc2e36b",623:"9e6fe7cf",740:"f8d4e457",909:"bd9b9d52",1059:"7d03ccaf",1422:"62b99870",2089:"0ae704f7",2107:"8e991452",2359:"48e2ebd6",2399:"8ad68633",2706:"4c7e7ada",2870:"5f289fb7",2959:"68ec37cc",3007:"04da11da",3257:"82a9b669",3306:"164327b9",4197:"7a2568c4",4248:"8333c691",4274:"7390b81e",4452:"bc4edc5c",4622:"d8837387",4729:"c76cc2e3",4738:"496dcc30",4758:"68e1906b",4790:"b97d8256",4861:"db8ccf76",4943:"dabee7bd",5572:"be3f5c40",5673:"fef7d16c",5729:"4513d9f5",5751:"fd4f5a0c",5758:"71880105",5989:"2452d5f5",6161:"3b1dfe68",6345:"a2bea3ed",6388:"eb2a6637",6403:"475d163e",6477:"05cc1716",6531:"c01cce30",6691:"cb962766",6794:"b28a365a",6971:"c377a04b",7310:"fb18633e",7386:"3aa512bf",7505:"8d193b98",7539:"e7bd9b37",7720:"bdfc7662",7742:"87499f15",7865:"9a3629a6",7918:"17896441",7920:"1a4e3797",7949:"0e6b6dd1",8051:"dadaca00",8308:"4232c3ed",8358:"7794a932",8469:"93422b31",8732:"e4904969",8784:"d47a3664",8794:"af6aab29",9157:"c526a898",9323:"8333ea4d",9514:"1be78505",9831:"5925ce9f",9886:"8b55bf27"}[e]||e)+"."+{53:"13143cb2",205:"e9ca4e1a",274:"ddd4552f",620:"876e08c0",623:"c549f588",740:"ba1644a0",909:"c2ec587a",1059:"a18e440e",1422:"eac41936",2089:"12a11a9d",2107:"9f077664",2359:"0b6ce575",2399:"0a69a909",2706:"9f072125",2870:"c8228f07",2959:"d3961cb0",3007:"d61e5604",3257:"402fdaf8",3306:"ce557677",4197:"cb80d87b",4248:"d59a9952",4274:"18c2ce22",4452:"30092a0e",4622:"31f2a62c",4729:"978efe66",4738:"2c33b3bd",4758:"57a9a7b8",4790:"7eff2a81",4861:"0bea83f9",4943:"9e39dc43",4972:"ea87a18a",5572:"3675591d",5673:"7198ddd5",5729:"f78b137f",5751:"7de9809a",5758:"761a2054",5989:"c8d9088c",6161:"a3e9cea9",6345:"53e03a1b",6388:"570a9def",6403:"60520781",6477:"bb8cde02",6531:"1810b6cb",6691:"2d69a424",6780:"3e547342",6794:"28a71aca",6945:"19e06702",6971:"753abc35",7310:"5c83c6b6",7386:"35e7bf91",7505:"9b1c2896",7539:"6bffc9e2",7720:"5ed547e8",7742:"3255091a",7865:"035a9d13",7918:"062de7c5",7920:"615c0dbb",7949:"a5062737",8051:"64b4e275",8308:"32b73572",8358:"f8711f2e",8469:"2fa67f2b",8732:"d2252a8b",8784:"2e54129a",8794:"62e5b74a",8894:"7d968ee6",9157:"18163a59",9323:"79e6ada8",9514:"fa7071eb",9831:"9da92efc",9886:"c5401f96"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="dasarpemrogramanrust:",b.l=(e,a,c,r)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/",b.gca=function(e){return e={17896441:"7918",71880105:"5758","935f2afb":"53","016a0787":"274","2bc2e36b":"620","9e6fe7cf":"623",f8d4e457:"740",bd9b9d52:"909","7d03ccaf":"1059","62b99870":"1422","0ae704f7":"2089","8e991452":"2107","48e2ebd6":"2359","8ad68633":"2399","4c7e7ada":"2706","5f289fb7":"2870","68ec37cc":"2959","04da11da":"3007","82a9b669":"3257","164327b9":"3306","7a2568c4":"4197","8333c691":"4248","7390b81e":"4274",bc4edc5c:"4452",d8837387:"4622",c76cc2e3:"4729","496dcc30":"4738","68e1906b":"4758",b97d8256:"4790",db8ccf76:"4861",dabee7bd:"4943",be3f5c40:"5572",fef7d16c:"5673","4513d9f5":"5729",fd4f5a0c:"5751","2452d5f5":"5989","3b1dfe68":"6161",a2bea3ed:"6345",eb2a6637:"6388","475d163e":"6403","05cc1716":"6477",c01cce30:"6531",cb962766:"6691",b28a365a:"6794",c377a04b:"6971",fb18633e:"7310","3aa512bf":"7386","8d193b98":"7505",e7bd9b37:"7539",bdfc7662:"7720","87499f15":"7742","9a3629a6":"7865","1a4e3797":"7920","0e6b6dd1":"7949",dadaca00:"8051","4232c3ed":"8308","7794a932":"8358","93422b31":"8469",e4904969:"8732",d47a3664:"8784",af6aab29:"8794",c526a898:"9157","8333ea4d":"9323","1be78505":"9514","5925ce9f":"9831","8b55bf27":"9886"}[e]||e,b.p+b.u(e)},(()=>{var e={1303:0,532:0};b.f.j=(a,c)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var r=b.p+b.u(a),t=new Error;b.l(r,(c=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),r=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+r+")",t.name="ChunkLoadError",t.type=d,t.request=r,f[1](t)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,r=c[0],t=c[1],o=c[2],n=0;if(r.some((a=>0!==e[a]))){for(f in t)b.o(t,f)&&(b.m[f]=t[f]);if(o)var i=o(b)}for(a&&a(c);n{"use strict";var e,a,c,f,d,r={},t={};function b(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return r[e].call(c.exports,c,c.exports,b),c.exports}b.m=r,e=[],b.O=(a,c,f,d)=>{if(!c){var r=1/0;for(i=0;i=d)&&Object.keys(b.O).every((e=>b.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);b.r(d);var r={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,b.d(d,r),d},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,c)=>(b.f[c](e,a),a)),[])),b.u=e=>"assets/js/"+({53:"935f2afb",274:"016a0787",620:"2bc2e36b",623:"9e6fe7cf",740:"f8d4e457",909:"bd9b9d52",1059:"7d03ccaf",1422:"62b99870",2089:"0ae704f7",2107:"8e991452",2359:"48e2ebd6",2399:"8ad68633",2706:"4c7e7ada",2870:"5f289fb7",2959:"68ec37cc",3007:"04da11da",3257:"82a9b669",3306:"164327b9",4197:"7a2568c4",4248:"8333c691",4274:"7390b81e",4452:"bc4edc5c",4622:"d8837387",4729:"c76cc2e3",4738:"496dcc30",4758:"68e1906b",4790:"b97d8256",4861:"db8ccf76",4943:"dabee7bd",5572:"be3f5c40",5673:"fef7d16c",5729:"4513d9f5",5751:"fd4f5a0c",5758:"71880105",5989:"2452d5f5",6161:"3b1dfe68",6345:"a2bea3ed",6388:"eb2a6637",6403:"475d163e",6477:"05cc1716",6531:"c01cce30",6691:"cb962766",6794:"b28a365a",6971:"c377a04b",7310:"fb18633e",7386:"3aa512bf",7505:"8d193b98",7539:"e7bd9b37",7720:"bdfc7662",7742:"87499f15",7865:"9a3629a6",7918:"17896441",7920:"1a4e3797",7949:"0e6b6dd1",8051:"dadaca00",8308:"4232c3ed",8358:"7794a932",8469:"93422b31",8732:"e4904969",8784:"d47a3664",8794:"af6aab29",9157:"c526a898",9323:"8333ea4d",9514:"1be78505",9831:"5925ce9f",9886:"8b55bf27"}[e]||e)+"."+{53:"cddcc82c",205:"e9ca4e1a",274:"ddd4552f",620:"876e08c0",623:"c549f588",740:"ba1644a0",909:"c2ec587a",1059:"a18e440e",1422:"eac41936",2089:"12a11a9d",2107:"9f077664",2359:"0b6ce575",2399:"0a69a909",2706:"9f072125",2870:"c8228f07",2959:"d3961cb0",3007:"d61e5604",3257:"402fdaf8",3306:"ce557677",4197:"cb80d87b",4248:"d59a9952",4274:"18c2ce22",4452:"30092a0e",4622:"31f2a62c",4729:"978efe66",4738:"2c33b3bd",4758:"57a9a7b8",4790:"7eff2a81",4861:"0bea83f9",4943:"9e39dc43",4972:"ea87a18a",5572:"3675591d",5673:"7198ddd5",5729:"f78b137f",5751:"7de9809a",5758:"761a2054",5989:"c8d9088c",6161:"a3e9cea9",6345:"53e03a1b",6388:"570a9def",6403:"60520781",6477:"bb8cde02",6531:"1810b6cb",6691:"2d69a424",6780:"3e547342",6794:"28a71aca",6945:"19e06702",6971:"c1a0a7ff",7310:"5c83c6b6",7386:"35e7bf91",7505:"9b1c2896",7539:"6bffc9e2",7720:"5ed547e8",7742:"3255091a",7865:"035a9d13",7918:"062de7c5",7920:"615c0dbb",7949:"a5062737",8051:"64b4e275",8308:"32b73572",8358:"f8711f2e",8469:"2fa67f2b",8732:"d2252a8b",8784:"2e54129a",8794:"62e5b74a",8894:"7d968ee6",9157:"18163a59",9323:"79e6ada8",9514:"fa7071eb",9831:"9da92efc",9886:"c5401f96"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="dasarpemrogramanrust:",b.l=(e,a,c,r)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/",b.gca=function(e){return e={17896441:"7918",71880105:"5758","935f2afb":"53","016a0787":"274","2bc2e36b":"620","9e6fe7cf":"623",f8d4e457:"740",bd9b9d52:"909","7d03ccaf":"1059","62b99870":"1422","0ae704f7":"2089","8e991452":"2107","48e2ebd6":"2359","8ad68633":"2399","4c7e7ada":"2706","5f289fb7":"2870","68ec37cc":"2959","04da11da":"3007","82a9b669":"3257","164327b9":"3306","7a2568c4":"4197","8333c691":"4248","7390b81e":"4274",bc4edc5c:"4452",d8837387:"4622",c76cc2e3:"4729","496dcc30":"4738","68e1906b":"4758",b97d8256:"4790",db8ccf76:"4861",dabee7bd:"4943",be3f5c40:"5572",fef7d16c:"5673","4513d9f5":"5729",fd4f5a0c:"5751","2452d5f5":"5989","3b1dfe68":"6161",a2bea3ed:"6345",eb2a6637:"6388","475d163e":"6403","05cc1716":"6477",c01cce30:"6531",cb962766:"6691",b28a365a:"6794",c377a04b:"6971",fb18633e:"7310","3aa512bf":"7386","8d193b98":"7505",e7bd9b37:"7539",bdfc7662:"7720","87499f15":"7742","9a3629a6":"7865","1a4e3797":"7920","0e6b6dd1":"7949",dadaca00:"8051","4232c3ed":"8308","7794a932":"8358","93422b31":"8469",e4904969:"8732",d47a3664:"8784",af6aab29:"8794",c526a898:"9157","8333ea4d":"9323","1be78505":"9514","5925ce9f":"9831","8b55bf27":"9886"}[e]||e,b.p+b.u(e)},(()=>{var e={1303:0,532:0};b.f.j=(a,c)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var r=b.p+b.u(a),t=new Error;b.l(r,(c=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),r=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+r+")",t.name="ChunkLoadError",t.type=d,t.request=r,f[1](t)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,r=c[0],t=c[1],o=c[2],n=0;if(r.some((a=>0!==e[a]))){for(f in t)b.o(t,f)&&(b.m[f]=t[f]);if(o)var i=o(b)}for(a&&a(c);n