Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

1
0
1
SHARE

Memahami Serialize dan Deserialize pada Serde (Rust)

like emoticon 1
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Memahami Serialize dan Deserialize pada Serde (Rust)

Halo teman-teman semuanya, pada artikel ini, kita akan membahas salah satu konsep penting dalam ekosistem Rust, yaitu serialize dan deserialize menggunakan Serde.

Konsep ini sangat sering digunakan ketika kita membangun backend, API, maupun aplikasi yang berhubungan dengan pertukaran data.

Apa Itu Serde?

Serde merupakan singkatan dari SERialize dan DEserialize. Serde adalah library di Rust yang digunakan untuk mengubah data Rust ke format lain dan mengubah kembali format tersebut ke data Rust. Format yang umum didukung oleh Serde antara lain:

  • JSON
  • YAML
  • TOML
  • MessagePack
  • dan format lainnya

Serde menjadi standar de facto di Rust karena cepat, aman, dan fleksibel.

Serialize

  • Apa itu Serialize?

    Serialize adalah proses mengubah struktur data Rust menjadi format lain, seperti JSON atau string, agar data tersebut bisa dikirim melalui API, disimpan ke file, disimpan ke databasedan dikirim melalui jaringan.

    Secara sederhana:

    Struct Rust → JSON / String / Bytes

  • Contoh Serialize dengan Serde

    use serde::Serialize;
    
    #[derive(Serialize)]
    struct User {
        id: u32,
        name: String,
        email: String,
    }
    
    fn main() {
        let user = User {
            id: 1,
            name: String::from("Fika"),
            email: String::from("fika@example.com"),
        };
    
        let json = serde_json::to_string(&user).unwrap();
        println!("{}", json);
    }
    

    Hasil Output:

    {"id":1,"name":"Fika","email":"fika@example.com"}
    

    Penjelasan

    • #[derive(Serialize)] digunakan agar struct bisa diserialisasi
    • serde_json::to_string() mengubah struct menjadi JSON string

Deserialize

  • Apa itu Deserialize?

    Deserialize adalah proses mengubah data dari format lain (misalnya JSON) menjadi struktur data Rust. Biasanya digunakan ketika menerima request JSON dari frontend, membaca file konfigurasi dan membaca response dari API lain.

    Secara sederhana:

    JSON / String / Bytes → Struct Rust

  • Contoh Deserialize dengan Serde

    use serde::Deserialize;
    
    #[derive(Deserialize)]
    struct User {
        id: u32,
        name: String,
        email: String,
    }
    
    fn main() {
        let json = r#"
            {
                "id": 1,
                "name": "Fika",
                "email": "fika@example.com"
            }
        "#;
    
        let user: User = serde_json::from_str(json).unwrap();
        println!("{} - {}", user.name, user.email);
    }
    

    Hasil Output:

    Fika - fika@example.com
    

    Penjelasan

    • #[derive(Deserialize)] menandakan struct bisa menerima data dari luar
    • serde_json::from_str() mengubah JSON menjadi struct Rust

Serialize dan Deserialize Bersamaan

Dalam praktik sehari-hari, sebuah struct biasanya mendukung keduanya:

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,
    name: String,
    email: String,
}

Struktur seperti ini sangat umum digunakan pada:

  • REST API
  • Microservices
  • Backend menggunakan Axum, Actix, atau Rocket

Attribute Penting pada Serde

Serde menyediakan banyak attribute untuk mengatur perilaku serialisasi dan deserialisasi.

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,

    #[serde(rename = "full_name")]
    name: String,

    #[serde(skip_serializing)]
    password: String,

    #[serde(default)]
    age: u8,
}

Penjelasan Attribute

  • rename → mengganti nama field di JSON
  • skip_serializing → field tidak dikirim saat serialize
  • default → memberi nilai default jika data tidak tersedia

Ringkasan

Proses Fungsi Arah Data
Serialize to_string, to_vec Rust → JSON/String
Deserialize from_str, from_slice JSON/String → Rust

Cara mudah mengingatnya:

  • Serialize berarti data keluar dari Rust
  • Deserialize berarti data masuk ke Rust

Penutup

Serde adalah library yang sangat penting dalam ekosistem Rust, terutama ketika kita bekerja dengan data lintas sistem. Dengan memahami konsep serialize dan deserialize, kita bisa membangun aplikasi Rust yang lebih terstruktur, aman, dan mudah dikembangkan.

Terima Kasih

Blog ini dibaca sebanyak 569 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...