Modifikasilah Kode Program untuk Menghitung Jarak Dua Kota yang Menerima Suatu Rute


Modifikasilah kode program untuk menghitung jarak dua kota yang menerima suatu rute. Misalnya, jika rute yang dimasukkan adalah Kota A - Kota B - Kota C, maka nilai total jarak yang dikeluarkan adalah 10 + 8 = 18 km.

Jawaban:

Berikut adalah modifikasi kode program untuk menghitung jarak Kota A - Kota B - Kota C, dengan nilai total jarak yang dikeluarkan 10 + 8 = 18 km.

#include <iostream>
#include <map>
using namespace std;

int main() {
    // Membuat peta (map) untuk menyimpan jarak antar kota
    map<string, int> jarakKota;
    jarakKota["A"] = 0;
    jarakKota["B"] = 10;
    jarakKota["C"] = 8;

    // Menginputkan rute kota
    string rute;
    cout << "Masukkan rute kota (pisahkan dengan tanda -): ";
    getline(cin, rute);

    // Memisahkan rute menjadi kota-kota yang terpisah
    string delimiter = "-";
    size_t pos = 0;
    string token;
    int totalJarak = 0;

    while ((pos = rute.find(delimiter)) != string::npos) {
        token = rute.substr(0, pos);
        totalJarak += jarakKota[token];
        rute.erase(0, pos + delimiter.length());
    }
    totalJarak += jarakKota[rute];  // Menambahkan jarak kota terakhir

    // Menampilkan hasil total jarak
    cout << "Total jarak: " << totalJarak << " km" << endl;

    return 0;
}

Kode program diatas, jarak antar kota disimpan dalam peta (map) yang menghubungkan nama kota dengan jaraknya. Kemudian, program mengambil rute kota yang dimasukkan oleh pengguna dan memisahkannya berdasarkan tanda "-" menggunakan fungsi find() dan substr(). Setiap kota yang ditemukan dalam rute akan ditambahkan dengan jaraknya ke dalam totalJarak.