Page 237 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 237
4. Program
#include <iostream>
#include <string>
#include <algorithm> // Untuk fungsi reverse() dan copy_if()
using namespace std;
int main() {
string kalimat; // Deklarasi variabel string untuk kalimat
cout << "Masukkan kalimat: "; // Prompt untuk pengguna
getline(cin, kalimat); // Membaca kalimat dari pengguna
// Menghitung jumlah kata
int jumlahKata = 1; // Minimal 1 kata
for (int i = 0; i < kalimat.length(); i++) {
if (kalimat[i] == ' ') {
jumlahKata++;
}
}
// Memisahkan kata-kata ke dalam array
string kata[jumlahKata]; // Array untuk menyimpan kata-kata
int indexKata = 0;
for (int i = 0; i < kalimat.length(); i++) {
if (kalimat[i] == ' ') {
kata[indexKata++] = kalimat.substr(0, i); // Menyimpan kata ke array
kalimat.erase(0, i + 1); // Menghapus kata yang sudah disimpan
i = -1; // Mengatur ulang indeks i
}
}
kata[indexKata++] = kalimat; // Menyimpan kata terakhir
// Membalik urutan kata
reverse(kata, kata + jumlahKata);
// Menampilkan kata-kata terbalik
cout << "Kalimat terbalik: ";
for (int i = 0; i < jumlahKata; i++) {
cout << kata[i] << " ";
}
return 0;
}
Output:
Masukkan kalimat: Saya mau belajar
Kalimat terbalik: belajar mau Saya
Penjelasan:
1) Membaca Kalimat:
o Program menggunakan getline(cin, kalimat) untuk membaca kalimat dari
pengguna dan menyimpannya dalam variabel string kalimat.
2) Menghitung Jumlah Kata:
o Perulangan for iterasi melalui kalimat.
214