Array
Latihan membuat instruksi pembelajaran tentang Array.
Implementasi instruksinya menggunakan bahasa pemrograman Rust.
Array adalah struktur data dasar yang digunakan untuk menyimpan sekumpulan elemen dengan tipe data yang sama. Elemen-elemen array disimpan dalam urutan tertentu dan dapat diakses melalui indeks. Dengan memahami array, kita dapat mengorganisasi data dengan lebih efisien, serta memproses data berulang secara sistematis.
Tujuan Pembelajaran
Setelah mempelajari materi ini, Anda akan mampu:
Menjelaskan konsep dasar array.
Mengakses elemen array menggunakan indeks.
Menggunakan perulangan untuk memproses seluruh isi array.
Mengimplementasikan contoh sederhana penggunaan array dalam Rust.
Memahami gambaran bagaimana array disimpan di memori.
Prasyarat
Pemahaman dasar variabel dan tipe data.
Struktur kontrol (
if-else
,for
).Operasi aritmetika sederhana.
Langkah-langkah Tugas
Deklarasi array Tentukan ukuran array dan isi nilai awal.
let nilai = [80, 75, 90, 60, 85];
Akses elemen array Gunakan indeks (dimulai dari 0).
println!("Elemen pertama = {}", nilai[0]);
Proses array dengan perulangan Gunakan
for
untuk menjumlahkan atau memeriksa seluruh elemen.Gunakan modularisasi (opsional) Pecah logika menjadi fungsi terpisah agar program lebih mudah dipahami dan diuji.
Visualisasi Memori
Bayangkan array let nilai = [80, 75, 90, 60, 85];
tersimpan di memori seperti deretan kotak:
Indeks: 0 1 2 3 4
Nilai: 80 75 90 60 85
Alamat: 1000 1004 1008 1012 1016
Setiap elemen array menempati lokasi memori berurutan.
Indeks digunakan untuk menghitung posisi relatif dari alamat awal.
Misalnya,
nilai[2]
(nilai 90) berada 8 byte setelah alamat awal (jikai32
= 4 byte).
Visualisasi ini membantu memahami kenapa array cepat diakses: alamat elemen dapat dihitung langsung, tanpa perlu mencari satu per satu.
Contoh Implementasi dalam Rust
Tanpa Modularisasi
fn main() {
let nilai = [80, 75, 90, 60, 85];
// Hitung jumlah
let mut total = 0;
for i in 0..nilai.len() {
total += nilai[i];
}
// Hitung rata-rata
let rata = total as f32 / nilai.len() as f32;
// Cari nilai maksimum
let mut maks = nilai[0];
for i in 1..nilai.len() {
if nilai[i] > maks {
maks = nilai[i];
}
}
println!("Jumlah nilai = {}", total);
println!("Rata-rata nilai = {:.2}", rata);
println!("Nilai maksimum = {}", maks);
}
Dengan Modularisasi
fn jumlahkan(arr: &[i32]) -> i32 {
let mut total = 0;
for i in 0..arr.len() {
total += arr[i];
}
total
}
fn cari_maksimum(arr: &[i32]) -> i32 {
let mut maks = arr[0];
for i in 1..arr.len() {
if arr[i] > maks {
maks = arr[i];
}
}
maks
}
fn main() {
let nilai = [80, 75, 90, 60, 85];
let total = jumlahkan(&nilai);
let rata = total as f32 / nilai.len() as f32;
let maks = cari_maksimum(&nilai);
println!("Jumlah nilai = {}", total);
println!("Rata-rata nilai = {:.2}", rata);
println!("Nilai maksimum = {}", maks);
}
Penjelasan Singkat Kode
nilai.len()
→ banyaknya elemen dalam array.nilai[i]
→ mengakses elemen ke-i (indeks dimulai dari 0).Fungsi
jumlahkan
dancari_maksimum
→ contoh modularisasi untuk memisahkan logika.
Refleksi
Mengapa array lebih mudah digunakan dibanding menyimpan banyak variabel satu per satu?
Bagaimana visualisasi memori membantu menjelaskan kenapa akses array bisa cepat?
Apa keuntungan memecah logika menjadi fungsi-fungsi sederhana dalam program yang lebih besar?
Jika Anda ingin menambahkan fungsi
cari_minimum
, apakah akan sulit dilakukan jika kode sudah terstruktur dengan baik?
Referensi
Materi ini terinspirasi dari kuliah CS50x 2024 – Week 2 (Arrays) yang berlisensi CC BY-NC-SA 4.0.