Page 221 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 221
// 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.
o Setiap kali menemukan spasi (kalimat[i] == ' '), variabel jumlahKata diinkrementasikan
untuk menghitung kata baru.
3) Memisahkan Kata-kata:
o Array kata dengan ukuran jumlahKata dideklarasikan untuk menyimpan kata-kata yang
dipisahkan.
o Perulangan for iterasi melalui kalimat.
o Ketika spasi ditemukan:
▪ Bagian kalimat sebelum spasi (kalimat.substr(0, i)) disimpan sebagai kata dalam
array kata[indexKata++].
▪ Bagian kalimat yang tersisa dihapus dari kalimat menggunakan kalimat.erase(0, i + 1).
▪ Indeks i diatur ulang ke -1 untuk memulai pencarian kata berikutnya dari awal
bagian kalimat yang tersisa.
o Kata terakhir disimpan dengan mengambil sisa kalimat (kalimat).
4) Membalik Urutan Kata:
212

