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
   216   217   218   219   220   221   222   223   224   225   226