PRAKTIKUM 9
String
A. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu:
1. Memahami konsep string pada C++ dan perbedaannya dengan char[].
2. Melakukan operasi dasar pada string seperti penggabungan, perbandingan, dan manipulasi.
3. Menggunakan fungsi dengan parameter bertipe string.
4. Menggunakan pass by reference (&) untuk memodifikasi string dari dalam fungsi.
5. Menerapkan konsep string dalam konteks game sederhana (nama pemain, dialog, status,
dsb).
B. Petunjuk
1. Awali setiap aktivitas anda dengan doa, agar anda lancar dalam belajar
2. Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik
3. Kerjakan tugas-tugas praktikum dengan baik, jujur, dan sabar
C. DASAR TEORI
1. String
String adalah sekumpulan karakter yang membentuk teks.
Dalam C++, tipe data std::string digunakan untuk memanipulasi teks secara mudah.
#include <iostream>
#include <string>
using namespace std;
int main() {
string name = "PENS";
cout << "Nama kampus: " << name << endl;
return 0;
}
2. Operasi Dasar pada String
Operasi Fungsi / Operator Contoh
Penggabungan + atau append() a + b, [Link](b)
Panjang string length() [Link]()
Substring substr(pos, n) [Link](0, 4)
Perbandingan ==, != if(a == b)
Pengambilan karakter text[i] char c = name[0];
3. Pass by Reference
Dengan pass by reference, argumen dikirim ke fungsi sebagai alamat memori
(bukan salinan).
Artinya, perubahan yang dilakukan di dalam fungsi akan memengaruhi variabel asli.
void ubah(string &nama) {
nama = "Player1";
}
LATIHAN!
LATIHAN 1 – String Dasar & Format Output (Intro Game)
Ketik program di bawah ini lalu jalankan! Pahami dahulu baru kerjakan latihan selanjutnya.
#include <iostream>
#include <string>
using namespace std;
int main() {
string gameTitle = "Legend of Code";
string developer = "PENS GameLab";
string version = "v1.2.0";
string intro = "Selamat datang di " + gameTitle + " (" + version + ")";
cout << "=====================================\n";
cout << intro << endl;
cout << "Dikembangkan oleh: " << developer << endl;
cout << "=====================================\n";
return 0;
}
• Tambahkan satu variabel string genre dan tampilkan di layar: “Genre: [genre]”
• Gabungkan semua teks intro ke satu variabel string fullIntro dan tampilkan dengan cout
<< fullIntro;
LATIHAN 2 – Input Data Karakter Pemain (tanpa spasi)
Ketik program di bawah ini lalu jalankan! Pahami dahulu baru kerjakan latihan selanjutnya.
#include <iostream>
#include <string>
using namespace std;
int main() {
string playerName, job;
int level;
cout << "Masukkan nama karakter: ";
cin >> playerName;
cout << "Masukkan job (misal: Mage, Knight, Archer): ";
cin >> job;
cout << "Masukkan level awal: ";
cin >> level;
cout << "\nProfil Karakter:\n";
cout << "Nama: " << playerName << endl;
cout << "Job: " << job << endl;
cout << "Level: " << level << endl;
cout << "=============================\n";
return 0;
}
• Coba masukkan nama dengan spasi. Apa yang terjadi?
• Jelaskan kenapa cin berhenti membaca saat ada spasi.
• Ubah agar input nama bisa menggunakan getline().
LATIHAN 3 - Input Nama & Dialog (dengan spasi, getline)
Ketik program di bawah ini lalu jalankan! Pahami dulu baru kerjakan latihan selanjutnya.
#include <iostream>
#include <string>
using namespace std;
int main() {
string playerName, npcName, dialog;
cout << "Masukkan nama pemain: ";
getline(cin, playerName);
cout << "Masukkan nama NPC: ";
getline(cin, npcName);
cout << "Masukkan dialog NPC: ";
getline(cin, dialog);
cout << "\n=== SCENE 1 ===\n";
cout << npcName << ": " << dialog << endl;
cout << playerName << ": (menjawab dengan senyum)\n";
return 0;
}
• Ubah agar nama pemain dan NPC dikapitalisasi huruf depannya saja.
• Tambahkan “narasi” seperti:
“Suasana di sekitar menjadi tegang...”
LATIHAN 4 – Manipulasi String & Fungsi Panjang Kalimat
Menggunakan method length(), substr(), dan append() untuk menampilkan analisis teks di dalam
game.
#include <iostream>
#include <string>
using namespace std;
int main() {
string quest = "Find the lost sword of Azeroth";
cout << "Quest: " << quest << endl;
cout << "Jumlah karakter: " << [Link]() << endl;
cout << "Kata pertama: " << [Link](0, 4) << endl; // "Find"
[Link](" - Urgent!");
cout << "Update quest: " << quest << endl;
return 0;
}
• Buat agar quest dibaca dari input pemain (getline).
• Tambahkan fungsi untuk memotong kata terakhir (gunakan substr() dan find_last_of(' ')).
• Tampilkan jumlah huruf vokal di kalimat tersebut (gunakan loop).
LATIHAN 5 - Fungsi dan Pass by Reference (Ubah Nama Pemain)
Melatih penggunaan string dalam fungsi dan konsep pass by reference agar fungsi dapat mengubah
data asli.
#include <iostream>
#include <string>
using namespace std;
void ubahNama(string &nama, string &gelar) {
nama = gelar + " " + nama;
cout << "Nama di dalam fungsi: " << nama << endl;
}
int main() {
string player = "Arion";
string title = "Sir";
cout << "Nama sebelum fungsi: " << player << endl;
ubahNama(player, title);
cout << "Nama setelah fungsi: " << player << endl;
return 0;
}
• Ubah fungsi agar menambahkan “of Light” di belakang nama.
• Tambahkan parameter int level, lalu tampilkan hasil seperti:
“Sir Arion of Light — Level 15”
• Jelaskan kenapa nama berubah di luar fungsi tanpa return.