Iterasi Array
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah halaman ini, kamu dapat memilih loop yang tepat untuk memproses data array dan melakukan operasi umum seperti penjumlahan, pencarian, dan pemfilteran.
Pendahuluan
Section titled “Pendahuluan”Array adalah cara menyimpan banyak nilai dalam satu variabel. Loop dan array adalah pasangan sempurna: loop memungkinkan kita memproses setiap elemen array satu per satu tanpa menulis kode berulang.
Analogi Kehidupan Sehari-hari
Section titled “Analogi Kehidupan Sehari-hari”Memeriksa Setiap Jawaban Ujian
Section titled “Memeriksa Setiap Jawaban Ujian”Guru memiliki tumpukan lembar jawaban siswa. Ia memeriksa satu per satu dari atas ke bawah, menghitung nilai, dan mencatat siapa yang lulus.
Untuk setiap lembar jawaban: Periksa jawaban Hitung nilai Catat hasilnyaSelesaiPenjelasan Materi
Section titled “Penjelasan Materi”TypeScript menyediakan beberapa cara mengiterasi array:
| Cara | Kapan Dipakai |
|---|---|
for (with index) |
Butuh indeks posisi |
for...of |
Hanya butuh nilai |
.forEach() |
Callback untuk setiap elemen |
Mari Mencoba
Section titled “Mari Mencoba”Buat src/bab3/iterasi-array.ts:
const nilaiSiswa: number[] = [85, 92, 67, 78, 95, 55, 88, 73]const namaSiswa: string[] = ["Andi", "Budi", "Citra", "Dian", "Eko", "Fira", "Gita", "Hani"]
// 1. Tampilkan semua siswa dengan nilai menggunakan for biasaconsole.log("=== Daftar Nilai Siswa ===")for (let i = 0; i < nilaiSiswa.length; i++) { console.log(`${i + 1}. ${namaSiswa[i]}: ${nilaiSiswa[i]}`)}
// 2. Hitung total dan rata-ratalet totalNilai: number = 0for (const nilai of nilaiSiswa) { totalNilai += nilai}const rataRata: number = totalNilai / nilaiSiswa.lengthconsole.log(`\nTotal nilai: ${totalNilai}`)console.log(`Rata-rata: ${rataRata.toFixed(2)}`)
// 3. Cari nilai tertinggi dan terendahlet tertinggi: number = nilaiSiswa[0]let terendah: number = nilaiSiswa[0]let namaTertinggi: string = namaSiswa[0]
for (let i = 0; i < nilaiSiswa.length; i++) { if (nilaiSiswa[i] > tertinggi) { tertinggi = nilaiSiswa[i] namaTertinggi = namaSiswa[i] } if (nilaiSiswa[i] < terendah) { terendah = nilaiSiswa[i] }}console.log(`\nNilai tertinggi: ${tertinggi} (${namaTertinggi})`)console.log(`Nilai terendah: ${terendah}`)
// 4. Filter siswa yang lulus (nilai >= 75)console.log("\n=== Siswa Lulus ===")let jumlahLulus = 0for (let i = 0; i < nilaiSiswa.length; i++) { if (nilaiSiswa[i] >= 75) { console.log(`✓ ${namaSiswa[i]}: ${nilaiSiswa[i]}`) jumlahLulus++ }}console.log(`\nTotal lulus: ${jumlahLulus} dari ${nilaiSiswa.length} siswa`)Jalankan:
tsx src/bab3/iterasi-array.tsOutput (sebagian)
Section titled “Output (sebagian)”=== Daftar Nilai Siswa ===1. Andi: 852. Budi: 923. Citra: 67...
Total nilai: 633Rata-rata: 79.13
Nilai tertinggi: 95 (Eko)Nilai terendah: 55
=== Siswa Lulus ===✓ Andi: 85✓ Budi: 92✓ Dian: 78✓ Eko: 95✓ Gita: 88
Total lulus: 5 dari 8 siswaPenjelasan Baris per Baris
Section titled “Penjelasan Baris per Baris”nilaiSiswa.length— jumlah elemen dalam array; loop berjalan selama indeks di bawah angka ini.totalNilai += nilai— akumulasi nilai menggunakanfor...of.nilaiSiswa[0]— mulai dari elemen pertama sebagai nilai awal perbandingan.nilaiSiswa[i] > tertinggi— setiap elemen dibandingkan dengan nilai tertinggi saat ini; jika lebih besar, perbarui.jumlahLulus++— hitung siswa yang memenuhi syarat.
Pola Iterasi Array yang Sering Dipakai
Section titled “Pola Iterasi Array yang Sering Dipakai”const data: number[] = [10, 20, 30, 40, 50]
// Totallet total = 0for (const x of data) total += x
// Nilai maksimumlet max = data[0]for (const x of data) if (x > max) max = x
// Filterconst lebihDari25: number[] = []for (const x of data) { if (x > 25) lebihDari25.push(x)}Kesalahan yang Sering Terjadi
Section titled “Kesalahan yang Sering Terjadi”const nilai: number[] = [80, 90, 70]for (let i = 0; i <= nilai.length; i++) { // harus < bukan <= console.log(nilai[i])}nilai.length adalah 3, indeks valid adalah 0, 1, 2. Jika i <= 3, maka nilai[3] adalah undefined.
Latihan
Section titled “Latihan”- Buat array 5 nilai. Hitung total, rata-rata, dan tentukan apakah rata-rata >= 75.
- Tambahkan fitur: tampilkan peringkat (siapa nilai tertinggi, kedua, ketiga).
Ringkasan
Section titled “Ringkasan”- Array dan loop adalah kombinasi yang sangat sering dipakai.
- Gunakan
forbiasa saat membutuhkan indeks. - Gunakan
for...ofsaat hanya membutuhkan nilai. - Pola umum: total, max/min, filter, dan pencarian elemen.