SlideShare a Scribd company logo
1 of 24
Download to read offline
Pendalaman String
(C++)
Tim Olimpiade Komputer Indonesia
1/24
Bagian 1
Pengolahan String
2/24
String pada C++
Seperti yang disinggung sebelumnya, terdapat dua macam string
yang dapat digunakan di C++.
1. cstring: string yang diwariskan dari bahasa C, yang
merupakan leluhur bahasa C++.
2. std string: string yang dimiliki oleh C++.
Kita akan membahasnya satu per satu.
3/24
Bagian 2
cstring
4/24
Pengenalan cstring
• Dalam bahasa C dan C++, cstring dibuat menggunakan ”null
terminated array of char”.
• Penggunaannya sesederhana membuat array char.
• Karena berasal dari bahasa C, cstring dapat berinteraksi
dengan scanf dan printf secara langsung.
#include <cstdio>
char s[1001];
int main() {
scanf("%s", s);
printf("%sn", s);
}
5/24
Representasi cstring
• Misalkan kita memasukkan ”Pak Dengklek” pada program
sebelumnya.
• Array s akan berisi karakter-karakter penyusun ”Pak
Dengklek”, diakhiri dengan karakter ’0’.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
P a k D e n g k l e k  0 ...
• Karakter ’0’ digunakan oleh C/C++ untuk menandai akhir
dari string.
• Jadi, meskipun terdapat 1001 elemen pada s, C/C++ tahu
string yang direpresentasikan hanya sampai elemen ke-11 saja.
6/24
Representasi cstring
• Perhatikan bahwa s hanya dapat menampung paling banyak
1000 karakter.
• Meskipun memiliki 1001 elemen, sebuah elemen sudah
dipesan untuk menempatkan karakter 0.
• Apabila string yang dibaca lebih dari 1000 karakter, program
tidak mengalami error. Namun, program akan bekerja dengan
tidak terprediksi.
• Pastikan ukuran array dibuat sebesar ukuran maksimal
masukan yang mungkin.
7/24
Pengolahan cstring
• Seperti array pada umumnya, Anda dapat mengolah setiap
elemennya secara independen.
• Sebagai contoh, program berikut mengubah setiap karakter
dari string yang dibaca menjadi ’a’.
int main() {
scanf("%s", s);
for (int i = 0; s[i] != ’0’; i++) {
s[i] = ’a’;
}
printf("%sn", s);
}
8/24
Mencari Panjang cstring
• Kita dapat menggunakan fungsi strlen untuk mencari
panjang suatu cstring.
• Fungsi ini disediakan oleh STL ”cstring”.
Contoh:
#include <cstdio>
#include <cstring>
char s[1001];
int main() {
scanf("%s", s);
printf("%dn", strlen(s));
}
9/24
Penggunaan strlen
• Fungsi strlen memiliki kompleksitas O(N), dengan N adalah
panjang dari string masukan.
• Penyebabnya adalah strlen sebenarnya mencari di indeks
keberapakah 0 berada.
• Apabila hendak digunakan dalam perulangan, simpan dulu
panjangnya ke dalam suatu variabel untuk menghindari
pemanggilan yang berulang-ulang.
Contoh:
// Buruk, O(N^2)
for (int i = 0; i < strlen(s); i++) {
printf("%c", s[i]);
}
// Baik, O(N)
int len = strlen(s);
for (int i = 0; i < len; i++) {
printf("%c", s[i]);
}
10/24
Membandingkan cstring
• Untuk membandingkan 2 cstring s dan t secara leksikografis,
gunakan strcmp(s,t).
• Nilai kembaliannya memiliki arti sebagai berikut:
• Negatif, artinya s lebih awal dari t.
• Nol, artinya s sama dengan t.
• Positif, artinya s lebih akhir dari t.
• Kompleksitasnnya O(N), dengan N adalah panjang string
terkecil yang dibandingkan.
Contoh penggunaan:
#include <cstdio>
#include <cstring>
char s[1001];
char t[1001];
int main() {
scanf("%s %s", s, t);
printf("%dn", strcmp(s, t));
}
11/24
Mengisi Array
• Untuk mengisi array arr dengan x, gunakan memset(arr,
x, sizeof(arr)).
• Nilai x terbatas pada tipe data char, atau angka di antara
-128 sampai 127 saja.
• Fungsi ini biasanya juga dimanfaatkan untuk menginisialisasi
array bilangan dengan 0 atau -1.
Contoh:
#include <cstdio>
#include <cstring>
char s[1001];
int arr[101];
int main() {
memset(s, ’x’, sizeof(s));
memset(arr, -1, sizeof(arr));
printf("%c %dn", s[0], arr[0]);
}
12/24
Fungsi cstring Lainnya
• Terdapat beberapa fungsi cstring lain seperti strcpy,
strncpy, dan strstr.
• Fungsi-fungsi tersebut tidak dibahas pada materi ini.
• Anda dapat mempelajarinya di dokumentasi C/C++ lebih
lanjut, seperti di http://www.cplusplus.com.
13/24
Bagian 3
std string
14/24
Representasi string
• String pada C++ direpresentasikan dengan struktur array
dinamis.
• Ukurannya dapat berubah sesuai dengan ukuran string.
• Oleh sebab itu, Anda tidak perlu mendeklarasikan ukuran
terbesar yang mungkin.
• Anda dapat mengakses dan mengubah nilai karakter dari
suatu indeks string secara independen.
15/24
Mencari Panjang string
• Untuk mencari panjang dari string s, cukup panggil
s.length().
• Kompleksitas pemanggilannya adalah O(1).
// O(N)
for (int i = 0; i < s.length(); i++) {
printf("%c", s[i]);
}
16/24
Mencari Substring
• Untuk mencari posisi suatu substring t dari string s, gunakan
s.find(t).
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "Pak Dengklek berternak";
string t1 = "Dengklek";
string t2 = "pak";
string t3 = "klek";
printf("%dn", s.find(t1)); // 4
printf("%dn", s.find(t2)); // -1 (tak ditemukan)
printf("%dn", s.find(t3)); // 8
}
17/24
Mengambil Substring
• Untuk mengambil substring dari indeks i sebanyak n karakter
dari string s, gunakan s.substr(i, n).
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "Pak Dengklek berternak";
printf("%sn", s.substr(0, 6).c_str()); // Pak De
printf("%sn", s.substr(2, 1).c_str()); // k
}
18/24
Menghapus Substring
• Untuk menghapus substring dari indeks i sebanyak n karakter
dari string s, gunakan s.erase(i, n).
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "Pak Dengklek berternak";
s.erase(1, 3);
printf("%sn", s.c_str()); // PDengklek berternak
}
19/24
Menyisipkan String
• Untuk menyisipkan string t ke string s bermula di indeks i,
gunakan s.insert(i, t).
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "Pak Dengklek berternak";
string t = "dan Bu ";
s.insert(4, t);
printf("%sn", s.c_str()); // Pak dan Bu Dengklek
berternak
}
20/24
Operasi Tambahan: Penempelan String
• Pada std string, hal ini dapat dilakukan cukup dengan operasi
’+’, layaknya operasi numerik.
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "Pak";
string t = "Dengklek";
string gabung = s + t;
printf("%sn", gabung.c_str()); // PakDengklek
}
21/24
Operasi Char
• Setiap karakter dari string memiliki tipe char.
• Kita dapat melakukan operasi penambahan atau pengurangan
pada char, yang akan dioperasikan pada kode ASCII-nya.
Contoh:
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "abc";
s[0]++;
s[1] += 2;
s[2] -= 2;
printf("%sn", s.c_str()); // bda
}
22/24
Operasi Char (lanj.)
• Operasi ini dapat digunakan untuk mengubah karakter suatu
string.
• Operasi yang umum adalah mengubah dari huruf kecil ke
besar, dengan cara mengurangkan char dengan selisih antara
ASCII ’a’ dengan ’A’.
• Cara sebaliknya akan mengubah dari huruf besar ke huruf
kecil.
• Hafalkan ASCII ’a’ adalah 97, dan ’A’ adalan 65.
#include <cstdio>
#include <string>
using namespace std;
int main() {
string s = "toki";
for (int i = 0; i < s.size(); i++) {
s[i] -= ’a’ - ’A’;
}
printf("%sn", s.c_str()); // TOKI
}
23/24
Selanjutnya...
• Pembelajaran kalian tentang C++ sudah cukup untuk bisa
menuliskan algoritma-algoritma kompleks.
• Berikutnya kita akan mempelajari hal-hal yang lebih berkaitan
dengan algoritma, bukan sekedar belajar bahasa.
24/24

More Related Content

What's hot

Alat pembelajaran
Alat pembelajaranAlat pembelajaran
Alat pembelajaranRomza Baher
 
Sistem pengapian-pada-motor-bakar
Sistem pengapian-pada-motor-bakarSistem pengapian-pada-motor-bakar
Sistem pengapian-pada-motor-bakarAkhmad Syaifudin
 
Konsep dasar pengajaran mikro
Konsep dasar pengajaran mikroKonsep dasar pengajaran mikro
Konsep dasar pengajaran mikroBu Ila
 
Esensi dan Ranah Profesi Kependidikan
Esensi dan Ranah Profesi KependidikanEsensi dan Ranah Profesi Kependidikan
Esensi dan Ranah Profesi KependidikanAdy Setiawan
 
Pengembangan kurikulum ppt
Pengembangan kurikulum pptPengembangan kurikulum ppt
Pengembangan kurikulum pptNovita Pasaribu
 
07. struktur dan isi kurikulum 2013
07. struktur  dan isi  kurikulum 201307. struktur  dan isi  kurikulum 2013
07. struktur dan isi kurikulum 2013Jati Mulyahadi
 
Surat pernyataan keaslian karya
Surat pernyataan keaslian karyaSurat pernyataan keaslian karya
Surat pernyataan keaslian karyaaris margono
 
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIA
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIASOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIA
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIASMK MUhammadiyah Singkut
 
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulako
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulakoLaporan kerja praktek plta poso 2 teknik elektro universitas tadulako
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulakoAmbo Asse
 
PPT INOVASI DAN REFORMASI PENDIDIKAN
PPT INOVASI DAN REFORMASI PENDIDIKANPPT INOVASI DAN REFORMASI PENDIDIKAN
PPT INOVASI DAN REFORMASI PENDIDIKANErsa Nabela
 
Landasan kultural pendidikan
Landasan kultural pendidikanLandasan kultural pendidikan
Landasan kultural pendidikanRima Trianingsih
 
makalah hakikat pendidikan
makalah hakikat pendidikanmakalah hakikat pendidikan
makalah hakikat pendidikanfuji dea delpani
 
Landasan Yuridis Formal Anak Berkebutuhan Khusus
Landasan Yuridis Formal Anak Berkebutuhan KhususLandasan Yuridis Formal Anak Berkebutuhan Khusus
Landasan Yuridis Formal Anak Berkebutuhan KhususDesy Aryanti
 
Laporan pts & ptk total
Laporan pts & ptk totalLaporan pts & ptk total
Laporan pts & ptk totalHeldy Eriston
 
Tugas fungsi tenaga pendidik dan kependidikan
Tugas fungsi tenaga pendidik dan kependidikanTugas fungsi tenaga pendidik dan kependidikan
Tugas fungsi tenaga pendidik dan kependidikanAmdi Zulhefi
 
Pompa sentrifugal
Pompa sentrifugalPompa sentrifugal
Pompa sentrifugalIffa M.Nisa
 
Pengantar pendidikan (hakekat pendidikan)
Pengantar pendidikan (hakekat pendidikan)Pengantar pendidikan (hakekat pendidikan)
Pengantar pendidikan (hakekat pendidikan)Irwan Hasan
 
Konsep Dasar Pembelajaran
Konsep Dasar PembelajaranKonsep Dasar Pembelajaran
Konsep Dasar PembelajaranYan Nurjani
 

What's hot (20)

Alat pembelajaran
Alat pembelajaranAlat pembelajaran
Alat pembelajaran
 
Sistem pengapian-pada-motor-bakar
Sistem pengapian-pada-motor-bakarSistem pengapian-pada-motor-bakar
Sistem pengapian-pada-motor-bakar
 
Konsep dasar pengajaran mikro
Konsep dasar pengajaran mikroKonsep dasar pengajaran mikro
Konsep dasar pengajaran mikro
 
Esensi dan Ranah Profesi Kependidikan
Esensi dan Ranah Profesi KependidikanEsensi dan Ranah Profesi Kependidikan
Esensi dan Ranah Profesi Kependidikan
 
Pengembangan kurikulum ppt
Pengembangan kurikulum pptPengembangan kurikulum ppt
Pengembangan kurikulum ppt
 
07. struktur dan isi kurikulum 2013
07. struktur  dan isi  kurikulum 201307. struktur  dan isi  kurikulum 2013
07. struktur dan isi kurikulum 2013
 
Surat pernyataan keaslian karya
Surat pernyataan keaslian karyaSurat pernyataan keaslian karya
Surat pernyataan keaslian karya
 
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIA
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIASOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIA
SOAL ESSAY HOTS KOMPUTER JARINGAN DASAR KELAS X MULTIMEDIA
 
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulako
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulakoLaporan kerja praktek plta poso 2 teknik elektro universitas tadulako
Laporan kerja praktek plta poso 2 teknik elektro universitas tadulako
 
PPT INOVASI DAN REFORMASI PENDIDIKAN
PPT INOVASI DAN REFORMASI PENDIDIKANPPT INOVASI DAN REFORMASI PENDIDIKAN
PPT INOVASI DAN REFORMASI PENDIDIKAN
 
Proposal pendirian sekolah
Proposal pendirian sekolahProposal pendirian sekolah
Proposal pendirian sekolah
 
KOMPETENSI GURU
KOMPETENSI GURUKOMPETENSI GURU
KOMPETENSI GURU
 
Landasan kultural pendidikan
Landasan kultural pendidikanLandasan kultural pendidikan
Landasan kultural pendidikan
 
makalah hakikat pendidikan
makalah hakikat pendidikanmakalah hakikat pendidikan
makalah hakikat pendidikan
 
Landasan Yuridis Formal Anak Berkebutuhan Khusus
Landasan Yuridis Formal Anak Berkebutuhan KhususLandasan Yuridis Formal Anak Berkebutuhan Khusus
Landasan Yuridis Formal Anak Berkebutuhan Khusus
 
Laporan pts & ptk total
Laporan pts & ptk totalLaporan pts & ptk total
Laporan pts & ptk total
 
Tugas fungsi tenaga pendidik dan kependidikan
Tugas fungsi tenaga pendidik dan kependidikanTugas fungsi tenaga pendidik dan kependidikan
Tugas fungsi tenaga pendidik dan kependidikan
 
Pompa sentrifugal
Pompa sentrifugalPompa sentrifugal
Pompa sentrifugal
 
Pengantar pendidikan (hakekat pendidikan)
Pengantar pendidikan (hakekat pendidikan)Pengantar pendidikan (hakekat pendidikan)
Pengantar pendidikan (hakekat pendidikan)
 
Konsep Dasar Pembelajaran
Konsep Dasar PembelajaranKonsep Dasar Pembelajaran
Konsep Dasar Pembelajaran
 

Similar to String C (20)

Pertemuan 6 Fungsi String
Pertemuan 6 Fungsi StringPertemuan 6 Fungsi String
Pertemuan 6 Fungsi String
 
String baru
String baruString baru
String baru
 
Arrays c++
Arrays c++Arrays c++
Arrays c++
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdf
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdf
 
String
StringString
String
 
Pertemuan4.ppt
Pertemuan4.pptPertemuan4.ppt
Pertemuan4.ppt
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
 
Laporan
LaporanLaporan
Laporan
 
Bahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsiBahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsi
 
Modul 2 - Tipe Data_ pusitell
Modul 2 - Tipe Data_ pusitellModul 2 - Tipe Data_ pusitell
Modul 2 - Tipe Data_ pusitell
 
Algoritma&Pemrograman C++ Pertemuan 10
Algoritma&Pemrograman C++ Pertemuan 10Algoritma&Pemrograman C++ Pertemuan 10
Algoritma&Pemrograman C++ Pertemuan 10
 
Dasar c
Dasar cDasar c
Dasar c
 
Tipe data
Tipe dataTipe data
Tipe data
 
207 p03
207 p03207 p03
207 p03
 
Manipulasi string
Manipulasi stringManipulasi string
Manipulasi string
 
03 i-o
03 i-o03 i-o
03 i-o
 
Array lanjutan
Array lanjutanArray lanjutan
Array lanjutan
 
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
 
Fungsi string
Fungsi stringFungsi string
Fungsi string
 

String C

  • 1. Pendalaman String (C++) Tim Olimpiade Komputer Indonesia 1/24
  • 3. String pada C++ Seperti yang disinggung sebelumnya, terdapat dua macam string yang dapat digunakan di C++. 1. cstring: string yang diwariskan dari bahasa C, yang merupakan leluhur bahasa C++. 2. std string: string yang dimiliki oleh C++. Kita akan membahasnya satu per satu. 3/24
  • 5. Pengenalan cstring • Dalam bahasa C dan C++, cstring dibuat menggunakan ”null terminated array of char”. • Penggunaannya sesederhana membuat array char. • Karena berasal dari bahasa C, cstring dapat berinteraksi dengan scanf dan printf secara langsung. #include <cstdio> char s[1001]; int main() { scanf("%s", s); printf("%sn", s); } 5/24
  • 6. Representasi cstring • Misalkan kita memasukkan ”Pak Dengklek” pada program sebelumnya. • Array s akan berisi karakter-karakter penyusun ”Pak Dengklek”, diakhiri dengan karakter ’0’. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... P a k D e n g k l e k 0 ... • Karakter ’0’ digunakan oleh C/C++ untuk menandai akhir dari string. • Jadi, meskipun terdapat 1001 elemen pada s, C/C++ tahu string yang direpresentasikan hanya sampai elemen ke-11 saja. 6/24
  • 7. Representasi cstring • Perhatikan bahwa s hanya dapat menampung paling banyak 1000 karakter. • Meskipun memiliki 1001 elemen, sebuah elemen sudah dipesan untuk menempatkan karakter 0. • Apabila string yang dibaca lebih dari 1000 karakter, program tidak mengalami error. Namun, program akan bekerja dengan tidak terprediksi. • Pastikan ukuran array dibuat sebesar ukuran maksimal masukan yang mungkin. 7/24
  • 8. Pengolahan cstring • Seperti array pada umumnya, Anda dapat mengolah setiap elemennya secara independen. • Sebagai contoh, program berikut mengubah setiap karakter dari string yang dibaca menjadi ’a’. int main() { scanf("%s", s); for (int i = 0; s[i] != ’0’; i++) { s[i] = ’a’; } printf("%sn", s); } 8/24
  • 9. Mencari Panjang cstring • Kita dapat menggunakan fungsi strlen untuk mencari panjang suatu cstring. • Fungsi ini disediakan oleh STL ”cstring”. Contoh: #include <cstdio> #include <cstring> char s[1001]; int main() { scanf("%s", s); printf("%dn", strlen(s)); } 9/24
  • 10. Penggunaan strlen • Fungsi strlen memiliki kompleksitas O(N), dengan N adalah panjang dari string masukan. • Penyebabnya adalah strlen sebenarnya mencari di indeks keberapakah 0 berada. • Apabila hendak digunakan dalam perulangan, simpan dulu panjangnya ke dalam suatu variabel untuk menghindari pemanggilan yang berulang-ulang. Contoh: // Buruk, O(N^2) for (int i = 0; i < strlen(s); i++) { printf("%c", s[i]); } // Baik, O(N) int len = strlen(s); for (int i = 0; i < len; i++) { printf("%c", s[i]); } 10/24
  • 11. Membandingkan cstring • Untuk membandingkan 2 cstring s dan t secara leksikografis, gunakan strcmp(s,t). • Nilai kembaliannya memiliki arti sebagai berikut: • Negatif, artinya s lebih awal dari t. • Nol, artinya s sama dengan t. • Positif, artinya s lebih akhir dari t. • Kompleksitasnnya O(N), dengan N adalah panjang string terkecil yang dibandingkan. Contoh penggunaan: #include <cstdio> #include <cstring> char s[1001]; char t[1001]; int main() { scanf("%s %s", s, t); printf("%dn", strcmp(s, t)); } 11/24
  • 12. Mengisi Array • Untuk mengisi array arr dengan x, gunakan memset(arr, x, sizeof(arr)). • Nilai x terbatas pada tipe data char, atau angka di antara -128 sampai 127 saja. • Fungsi ini biasanya juga dimanfaatkan untuk menginisialisasi array bilangan dengan 0 atau -1. Contoh: #include <cstdio> #include <cstring> char s[1001]; int arr[101]; int main() { memset(s, ’x’, sizeof(s)); memset(arr, -1, sizeof(arr)); printf("%c %dn", s[0], arr[0]); } 12/24
  • 13. Fungsi cstring Lainnya • Terdapat beberapa fungsi cstring lain seperti strcpy, strncpy, dan strstr. • Fungsi-fungsi tersebut tidak dibahas pada materi ini. • Anda dapat mempelajarinya di dokumentasi C/C++ lebih lanjut, seperti di http://www.cplusplus.com. 13/24
  • 15. Representasi string • String pada C++ direpresentasikan dengan struktur array dinamis. • Ukurannya dapat berubah sesuai dengan ukuran string. • Oleh sebab itu, Anda tidak perlu mendeklarasikan ukuran terbesar yang mungkin. • Anda dapat mengakses dan mengubah nilai karakter dari suatu indeks string secara independen. 15/24
  • 16. Mencari Panjang string • Untuk mencari panjang dari string s, cukup panggil s.length(). • Kompleksitas pemanggilannya adalah O(1). // O(N) for (int i = 0; i < s.length(); i++) { printf("%c", s[i]); } 16/24
  • 17. Mencari Substring • Untuk mencari posisi suatu substring t dari string s, gunakan s.find(t). Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "Pak Dengklek berternak"; string t1 = "Dengklek"; string t2 = "pak"; string t3 = "klek"; printf("%dn", s.find(t1)); // 4 printf("%dn", s.find(t2)); // -1 (tak ditemukan) printf("%dn", s.find(t3)); // 8 } 17/24
  • 18. Mengambil Substring • Untuk mengambil substring dari indeks i sebanyak n karakter dari string s, gunakan s.substr(i, n). Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "Pak Dengklek berternak"; printf("%sn", s.substr(0, 6).c_str()); // Pak De printf("%sn", s.substr(2, 1).c_str()); // k } 18/24
  • 19. Menghapus Substring • Untuk menghapus substring dari indeks i sebanyak n karakter dari string s, gunakan s.erase(i, n). Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "Pak Dengklek berternak"; s.erase(1, 3); printf("%sn", s.c_str()); // PDengklek berternak } 19/24
  • 20. Menyisipkan String • Untuk menyisipkan string t ke string s bermula di indeks i, gunakan s.insert(i, t). Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "Pak Dengklek berternak"; string t = "dan Bu "; s.insert(4, t); printf("%sn", s.c_str()); // Pak dan Bu Dengklek berternak } 20/24
  • 21. Operasi Tambahan: Penempelan String • Pada std string, hal ini dapat dilakukan cukup dengan operasi ’+’, layaknya operasi numerik. Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "Pak"; string t = "Dengklek"; string gabung = s + t; printf("%sn", gabung.c_str()); // PakDengklek } 21/24
  • 22. Operasi Char • Setiap karakter dari string memiliki tipe char. • Kita dapat melakukan operasi penambahan atau pengurangan pada char, yang akan dioperasikan pada kode ASCII-nya. Contoh: #include <cstdio> #include <string> using namespace std; int main() { string s = "abc"; s[0]++; s[1] += 2; s[2] -= 2; printf("%sn", s.c_str()); // bda } 22/24
  • 23. Operasi Char (lanj.) • Operasi ini dapat digunakan untuk mengubah karakter suatu string. • Operasi yang umum adalah mengubah dari huruf kecil ke besar, dengan cara mengurangkan char dengan selisih antara ASCII ’a’ dengan ’A’. • Cara sebaliknya akan mengubah dari huruf besar ke huruf kecil. • Hafalkan ASCII ’a’ adalah 97, dan ’A’ adalan 65. #include <cstdio> #include <string> using namespace std; int main() { string s = "toki"; for (int i = 0; i < s.size(); i++) { s[i] -= ’a’ - ’A’; } printf("%sn", s.c_str()); // TOKI } 23/24
  • 24. Selanjutnya... • Pembelajaran kalian tentang C++ sudah cukup untuk bisa menuliskan algoritma-algoritma kompleks. • Berikutnya kita akan mempelajari hal-hal yang lebih berkaitan dengan algoritma, bukan sekedar belajar bahasa. 24/24