Mengenal Bahasa Pemrograman Rust Bagian 3: Tipe Data Tuple dan Array

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Tipe data tuple dan array pada Rust
Mengenal Bahasa Pemrograman Rust Bagian 3 (Rust Logo: Hak Cipta Mozilla)

TeknoCerdas.com – Salam cerdas untuk kita semua. Masih dalam seri mengenal bahasa pemrograman Rust. Pada tulisan kali ini penulis masih akan membahas tipe data pada bahasa pemrograman Rust. Pada bagian tiga ini yang akan kita bahas adalah tipe data tuple dan array pada Rust.

Jika anda belum membaca seri sebelumnya tulisan ini silahkan menuju link berikut. 

Seperti bahasa pemrograman lain, pada Rust dikenal dua tipe data utama yaitu tipe data scalar dan tipe data compound.

Tipe Data Compound

Secara sederhana tipe data compound adalah pengelompokan beberapa nilai data sekaligus. Dalam tipe ini terdapat dua tipe pengelompokan yaitu tipe tuple dan array.

Tipe Data Tuple

Tipe data tuple adalah cara mengelompokan beberapa nilai yang dapat berbeda tipe data menjadi satu kelompok. Sebagai contoh dalam satu tuple anda dapat mengisinya dengan tipe data integer u8, u16 dan tipe float f64.

Tuple bersifat statis atau konstan artinya ketika ia sudah dideklarasikan maka ukurannya tidak bisa diubah. Tidak bisa ditambah atau dikurangi.

Berikut contoh bagaimana sebuah tuple dideklarasikan.

fn main() {
    let mytuple: (u8, u16, f64) = (10, 5000, 10.2345);
    
    println!("Data tuple {:?}", mytuple);
    println!("Data tuple index-0 {:0}", mytuple.0);
    println!("Data tuple index-1 {:1}", mytuple.1);
    println!("Data tuple index-2 {:2}", mytuple.2);
}

Dapat terlihat pada kode diatas bahwa variabel mytuple memiliki tiga elemen. Masing-masing bertipe u8, u16 dan f64. Variabel ini tidak dapat diubah ukurannya selama program berlangsung. Jadi ukurannya akan selalu 3.

Untuk mengakses elemen pada sebuah tuple digunakan notasi “.” (titk). Elemen pada tuple dimulai dari index ke nol. Hampir sama dengan semua bahasa pemrograman lain.

Selain cara diatas terdapat alternatif lain untuk pengalokasian variabel pada tuple. Cara berikut disebut dengan destructuring. Dimana sebuah tuple dibagi dalam beberapa variabel.

fn main() {
    let mytuple: (u8, u16, f64) = (10, 5000, 10.2345);
    let (x, y, z) = mytuple;

    println!("Data tuple x => {}, y => {}, z => {}", x, y, z);
}

Tipe Data Array

Tipe data array adalah cara mengelompokan beberapa nilai yang bertipe data sama menjadi satu kelompok. Sama seperti tuple, array juga bersifat statis atau konstan dimana ukurannya tidak bisa diubah ketika sudah dideklarasikan.

Perbedaan dengan tuple adalah pada tuple dapat menyimpan variabel dengan tipe data berbeda. Perbedaan lain pada array dapat diketahui jumlah elemen didalamnya sedangkan tuple tidak bisa dilakukan.

Berikut contoh deklarasi array pada Rust.

fn main() {
    let nomor: [u8; 3] = [10, 11, 12];
    println!("Jumlah nomor {} yaitu: {:?}", nomor.len(), nomor);
    
    let nomor_sama = [10; 3];
    println!("Jumlah nomor {} yaitu: {:?}", nomor_sama.len(), nomor_sama);
}

Deklarasi array ditandai dengan kurung siku []. Untuk mendapatkan ukuran dari array digunakna method .len(). Untuk mengakses elemen dalam array juga digunakan kurung siku dengan index yang ditentukan.

fn main() {
    let bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun",
                 "Jul", "Ags", "Sep", "Okt", "Nop", "Des"];
                 
    println!("Bulan ke 6 adalah {}", bulan[6 - 1]);
}

Jika index yang akan diakses diluar dari index yang ada maka saat kompilasi Rust akan mengeluarkan error index diluar batasan. Seperti contoh berikut.

    println!("Bulan ke 6 adalah {}", bulan[15]);
   Compiling playground v0.0.1 (/playground)
error: this operation will panic at runtime
 --> src/main.rs:5:38
  |
5 |     println!("Bulan ke 6 adalah {}", bulan[15]);
  |                                      ^^^^^^^^^ index out of bounds: the len is 12 but the index is 15
  |
  = note: `#[deny(unconditional_panic)]` on by default

error: aborting due to previous error

error: could not compile `playground`.

Sampai disini dulu mengenal bahasa pemrograman Rust bagian 3. Simak terus TeknoCerdas.com untuk update tulisan pengenalan bahasa pemrograman Rust.