# Serde & Serialisasi (Rust) > trait serde, derive macro, JSON/YAML/TOML, (de)serialisasi kustom, lifetime dengan Cow, performa - 20 pertanyaan wawancara - Mid-Level - [Pertanyaan Wawancara: Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara.md) ## 1. Apa peran utama crate serde di Rust? **Jawaban** Serde adalah framework serialisasi dan deserialisasi generik untuk Rust. Namanya berasal dari "SERialize DEserialize". Serde memungkinkan konversi struktur data Rust ke dan dari berbagai format data (JSON, YAML, TOML, dll.) secara efisien dan type-safe. Serde menggunakan sistem trait Rust untuk menyediakan abstraksi tanpa biaya runtime. ## 2. Apa sintaks yang benar untuk mengaktifkan serialisasi otomatis pada sebuah struct dengan serde? **Jawaban** Atribut #[derive(Serialize, Deserialize)] secara otomatis menghasilkan implementasi trait Serialize dan Deserialize untuk sebuah struct. Macro prosedural ini menganalisis struktur field dan menghasilkan kode yang diperlukan saat kompilasi. Anda perlu mengimpor trait dari serde dengan use serde::{Serialize, Deserialize}. ## 3. Fungsi mana yang harus digunakan untuk mengonversi struct Rust menjadi string JSON dengan serde_json? **Jawaban** Fungsi serde_json::to_string() mengonversi nilai yang mengimplementasikan Serialize menjadi string JSON. Fungsi ini mengembalikan Result karena serialisasi dapat gagal dalam kasus tertentu. Untuk output yang diformat dengan indentasi, gunakan serde_json::to_string_pretty(). Untuk menulis langsung ke Writer, gunakan serde_json::to_writer(). ## 17 pertanyaan lagi tersedia - Bagaimana cara mendeserialisasi string JSON menjadi struct Rust dengan serde_json? - Atribut serde mana yang harus digunakan untuk mengganti nama field selama serialisasi? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Rust lainnya - [Dasar-Dasar Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/rust-basics.md): 25 pertanyaan, Junior - [Ownership & Borrowing](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/ownership-borrowing.md): 22 pertanyaan, Junior - [Structs & Enums](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/structs-enums.md): 20 pertanyaan, Junior - [Penanganan Error](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/error-handling.md): 18 pertanyaan, Junior - [Collections](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/collections.md): 20 pertanyaan, Junior - [Module & Package](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/modules-packages.md): 18 pertanyaan, Junior - [Traits](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/traits.md): 22 pertanyaan, Mid-Level - [Generics](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/generics.md): 20 pertanyaan, Mid-Level - [Lifetimes](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/lifetimes.md): 20 pertanyaan, Mid-Level - [Iterators & Closures](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/iterators-closures.md): 22 pertanyaan, Mid-Level - [Smart Pointers](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/smart-pointers.md): 22 pertanyaan, Mid-Level - [Concurrency Basics](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/concurrency-basics.md): 20 pertanyaan, Mid-Level - [async/await](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/async-await.md): 22 pertanyaan, Mid-Level - [Testing](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/testing.md): 18 pertanyaan, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/cargo-ecosystem.md): 18 pertanyaan, Mid-Level - [Pattern Matching](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/pattern-matching.md): 18 pertanyaan, Mid-Level - [Macro](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/macros.md): 20 pertanyaan, Mid-Level - [Unsafe Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/unsafe-rust.md): 20 pertanyaan, Senior - [Trait Lanjutan](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/advanced-traits.md): 22 pertanyaan, Senior - [Lifetime Lanjutan](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/advanced-lifetimes.md): 20 pertanyaan, Senior - [Type System](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/type-system.md): 20 pertanyaan, Senior - [Tokio & Async I/O](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/tokio-async.md): 22 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/performance-optimization.md): 20 pertanyaan, Senior - [Memory Management](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/memory-management.md): 20 pertanyaan, Senior - [Web Frameworks](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/web-frameworks.md): 22 pertanyaan, Senior - [Database Integration](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/database-integration.md): 20 pertanyaan, Senior - [Design Pattern Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/design-patterns.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/serde-serialization