Menu
CoddyTech

For loop Berbasis Rentang

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 15 dari 56.

Meskipun for loop tradisional dengan indeks berfungsi baik untuk melakukan iterasi melalui vector, C++ menawarkan solusi yang lebih elegan: range-based for loop. Sintaks modern ini menghilangkan kebutuhan untuk mengelola indeks secara manual dan membuat kodemu lebih rapi serta mudah dibaca.

for loop berbasis rentang menangani detail perulangan secara otomatis untukmu. Daripada mengelola variabel indeks, kamu cukup menentukan apa yang ingin kamu lakukan dengan setiap elemen:

std::vector<std::string> names = {"Alice", "Bob", "Charlie"};

for (const std::string& name : names) {
    std::cout << name << std::endl;
}

Perulangan ini melakukan hal yang sama persis seperti pendekatan tradisional berbasis indeks, tetapi dengan sintaks yang jauh lebih sederhana. Variabel name secara otomatis mengambil nilai setiap elemen dalam vector, satu per satu.

Kamu mungkin melihat simbol & dalam deklarasi perulangan: const std::string& name. Dalam konteks ini, & tidak berarti "alamat dari" seperti yang mungkin pernah kamu lihat sebelumnya. Di sini, simbol ini menyatakan bahwa name adalah sebuah referensi (alias) yang langsung mengacu pada setiap elemen dalam vector, alih-alih membuat salinannya. Anggap saja ini seperti memberi nama baru pada bagian data yang sama, mirip dengan menggunakan pointer ke elemen tersebut, tetapi tanpa perlu melakukan dereferensi di dalam badan perulangan.

Kata kunci const adalah langkah pengamanan: kata kunci ini mencegah kamu mengubah elemen secara tidak sengaja melalui alias di dalam isi perulangan. Alias itu sendiri tetap berpindah ke setiap elemen baru pada setiap iterasi. Yang tetap konstan adalah konten yang kamu akses melalui alias, bukan kemajuan perulangan.

for loop berbasis rentang tidak hanya lebih mudah dibaca, tetapi juga lebih aman. Tidak ada risiko error indeks karena kamu tidak mengelola indeks secara manual. Fitur ini berfungsi dengan container apa pun yang mendukung iterasi, sehingga menjadi alat serbaguna untuk memproses kumpulan data di C++.

challenge icon

Tantangan

Mudah

Buat program yang menunjukkan range-based for loop dengan memproses kumpulan nama kota dan menampilkannya beserta jumlah karakternya.

Input berikut akan diberikan:

  • Bilangan bulat n yang menunjukkan jumlah kota
  • Lalu n string yang menunjukkan nama kota

Programmu harus:

  1. Membuat std::vector<std::string> bernama cities
  2. Menggunakan push_back() untuk menambahkan setiap nama dari n kota ke vector
  3. Menggunakan range-based for loop untuk melakukan iterasi pada vector
  4. Untuk setiap kota dalam loop, mencetak nama kota diikuti panjangnya menggunakan method .length()
  5. Setelah loop, mencetak jumlah total kota yang diproses menggunakan method .size() milik vector

Gunakan format output persis berikut:

City: [city name] (Length: [number of characters])\nCity: [city name] (Length: [number of characters])\n...\nTotal cities processed: [total count]

Range-based for loop harus menggunakan sintaks for (const std::string& city : cities) untuk melakukan iterasi pada setiap elemen dalam vector. Gunakan city.length() untuk mendapatkan jumlah karakter dalam setiap nama kota.

Coba sendiri

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // Baca jumlah kota
    int n;
    cin >> n;
    
    // Buat vector untuk menyimpan nama kota
    vector<string> cities;
    
    // Baca nama kota dan tambahkan ke vector
    for (int i = 0; i < n; i++) {
        string city;
        cin >> city;
        cities.push_back(city);
    }
    
    // TODO: Tulis kodemu di bawah ini
    // Gunakan range-based for loop untuk menelusuri vector cities
    // Cetak setiap nama kota beserta panjang namanya dengan format yang ditentukan
    // Setelah perulangan, cetak jumlah kota yang diproses
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online