DEV Community

Abdul Ghofur
Abdul Ghofur

Posted on

1 1

Rust - Tipe Data Compound

Compound Types

Semua materi merupakan rangkuman belajar.

Untuk bacaan yang lebih langkap & update, dipersilahkan akses pada
The Book

Seperti disebutkan sebelumnya, Compound Types merupakan kelompok dari beberapa nilai.

Dibagi menjadi 2:

  1. Tuple
    • dapat menampung beberapa tipe data yang berbeda
  2. Array
    • hanya dapat menampung tipe data sejenis

Persamaan dari 2 jenis Compound di atas adalah
sama-sama memiliki panjang yang pasti (tidak dapat dirubah)

Oke, langsung contoh

Tuple

fn main() {
  // Deklarasi dengan tipe data
  let nilai: (u8, f32, u8) = (80, 9.3, 77);

  // Deklarasi tanpa tipe data
  let nilai_b = ('A', 79, 9.3);

  // Destructuring
  let (x, y, z) = nilai;
  println!("{}, {}, {}", x, y, z);

  // Directly access element
  let h = nilai_b.0;
  println!("{}", h);
}
Enter fullscreen mode Exit fullscreen mode
  • Tuple ditandai dengan tanda kurung ( ).
  • Dapat dideklarasi dengan atau tanpa tipe data element-nya.
  • Mengambil nilai element dapat dilakukan dengan 2 cara

    1. Destructuring
      seperti saat deklarasi, akses pun menggunakan tanda kurung ( ).

      Perlu diperhatikan, akses nilai dengan destructuring
      harus menyesaikan dengan panjang tuple-nya.

      Bila ada element yang tidak akan dipakai,
      maka dapat menggunakan _ sebagai variable nya

      fn main() {
        let nilai_b = ('A', 79, 9.3);
      
        let (h, _, _) = nilai_b;
      
        println!("{}", h);
      }
      
2. Directly access
    dengan menggunakan `.`, dan index yang diawali dengan 0.
Enter fullscreen mode Exit fullscreen mode

Array

Hanya satu tipe data dan panjangnya tidak dapat diubah.

fn main() {
  // Deklarasi dengan tipe data
  let nilai_matematika: [u8; 5]  = [8, 4, 9, 8, 8];

  // Deklarasi tanpa tipe data
  let nilai_ipa = [8, 7, 5, 6, 5]; 

  // Destructuring
  let [_, kedua, _, keempat, _] = nilai_matematika;
  println!("{}, {}", kedua, keempat);

  // Directly access element
  let ipa_kedua = nilai_ipa[1];
  println!("{}", ipa_kedua);
}
Enter fullscreen mode Exit fullscreen mode
  • Array ditandai dengan tanda kurung siku [ ].
  • Dapat dideklarasi dengan atau tanpe tipe data.
    Saat menggunakan tipe datanya, yang ditulis adalah
    [u8; 5] tipe datanya (u8) dan panjang array nya (5),
    dengan ; sebagai pemisah.

    Denga metode ini, kita juga dapat membuat array dengan panjang dan nilai yang sama,
    contohnya,

    let nilai_ips = [7; 5];
    

    Hal ini sama dengan kita menulis let nilai_ips = [7, 7, 7, 7, 7].

  • Mengambil nilai element dapat dilakukan dengan 2 cara, sepertihalnya Tuple

    1. Destructuring
      dengan tanda akses nya [ ].

      Dan ketentuan error sepertihalnya Tuple.

    2. Directly access
      dengan menggunaan tanda [ ], dan index 0 sebagai awalnya.

Demikian Sesi Tipe Data.
Semoga bermanfaat, dan terima kasih.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up