SlideShare a Scribd company logo
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

Mekanika 2
Mekanika 2Mekanika 2
Mekanika 2
adnavi
 
Pertemuan 6 (ukuran penyebaran data))
Pertemuan 6 (ukuran penyebaran data))Pertemuan 6 (ukuran penyebaran data))
Pertemuan 6 (ukuran penyebaran data))
reno sutriono
 
Dinamika partikel
Dinamika partikelDinamika partikel
Dinamika partikelFiktofik
 
Pengantar Statistika Inferensial
Pengantar Statistika InferensialPengantar Statistika Inferensial
Pengantar Statistika Inferensial
M. Jainuri, S.Pd., M.Pd
 
Contoh proposal skripsi
Contoh proposal skripsiContoh proposal skripsi
Contoh proposal skripsi
Firmansyah Drei'und-zwanzig
 
sifat umum gelombang
sifat umum gelombangsifat umum gelombang
sifat umum gelombang
annisnuruli
 
Tugas softskill (peranan komputasi)
Tugas softskill (peranan komputasi)Tugas softskill (peranan komputasi)
Tugas softskill (peranan komputasi)
Harristonn Raja
 
Teori falsifikasi karl
Teori falsifikasi karlTeori falsifikasi karl
Teori falsifikasi karl
Achmad Ridha
 
Filsafat Umum - Epistemologi
Filsafat Umum - EpistemologiFilsafat Umum - Epistemologi
Filsafat Umum - Epistemologi
Wulandari Rima Kumari
 
Contoh Artikel Konseptual
Contoh Artikel KonseptualContoh Artikel Konseptual
Contoh Artikel Konseptual
Uwes Chaeruman
 
Sistem Penunjang Keputusan [Simulasi Monte Carlo]
Sistem Penunjang Keputusan [Simulasi Monte Carlo]Sistem Penunjang Keputusan [Simulasi Monte Carlo]
Sistem Penunjang Keputusan [Simulasi Monte Carlo]
Institut Teknologi Sepuluh Nopember Surabaya
 
Analisis Korelasi dan Regresi *)not marked
Analisis Korelasi dan Regresi *)not markedAnalisis Korelasi dan Regresi *)not marked
Analisis Korelasi dan Regresi *)not marked
saiful ghozi
 
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang EntropiStatistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
Samantars17
 
PERULANGAN (LOOPING)
PERULANGAN (LOOPING)PERULANGAN (LOOPING)
PERULANGAN (LOOPING)
Ahmad Givari
 
Fisika Matematika I (1 - 2) Bil kompleks
Fisika Matematika I (1 - 2) Bil kompleksFisika Matematika I (1 - 2) Bil kompleks
Fisika Matematika I (1 - 2) Bil kompleks
jayamartha
 
52165275 konsep-elektrostatik
52165275 konsep-elektrostatik52165275 konsep-elektrostatik
52165275 konsep-elektrostatik
SMP IT Putra Mataram
 
Momentum impuls tumbukan
Momentum impuls tumbukanMomentum impuls tumbukan
Momentum impuls tumbukanAhmed Asrofi
 

What's hot (20)

Mekanika 2
Mekanika 2Mekanika 2
Mekanika 2
 
Pertemuan 6 (ukuran penyebaran data))
Pertemuan 6 (ukuran penyebaran data))Pertemuan 6 (ukuran penyebaran data))
Pertemuan 6 (ukuran penyebaran data))
 
Dinamika partikel
Dinamika partikelDinamika partikel
Dinamika partikel
 
Pengantar Statistika Inferensial
Pengantar Statistika InferensialPengantar Statistika Inferensial
Pengantar Statistika Inferensial
 
Contoh proposal skripsi
Contoh proposal skripsiContoh proposal skripsi
Contoh proposal skripsi
 
sifat umum gelombang
sifat umum gelombangsifat umum gelombang
sifat umum gelombang
 
Tugas softskill (peranan komputasi)
Tugas softskill (peranan komputasi)Tugas softskill (peranan komputasi)
Tugas softskill (peranan komputasi)
 
Teori falsifikasi karl
Teori falsifikasi karlTeori falsifikasi karl
Teori falsifikasi karl
 
2. kurikulum 2
2. kurikulum 22. kurikulum 2
2. kurikulum 2
 
Filsafat Umum - Epistemologi
Filsafat Umum - EpistemologiFilsafat Umum - Epistemologi
Filsafat Umum - Epistemologi
 
Contoh Artikel Konseptual
Contoh Artikel KonseptualContoh Artikel Konseptual
Contoh Artikel Konseptual
 
Powerpoint filsafat
Powerpoint filsafatPowerpoint filsafat
Powerpoint filsafat
 
Sistem Penunjang Keputusan [Simulasi Monte Carlo]
Sistem Penunjang Keputusan [Simulasi Monte Carlo]Sistem Penunjang Keputusan [Simulasi Monte Carlo]
Sistem Penunjang Keputusan [Simulasi Monte Carlo]
 
Analisis Korelasi dan Regresi *)not marked
Analisis Korelasi dan Regresi *)not markedAnalisis Korelasi dan Regresi *)not marked
Analisis Korelasi dan Regresi *)not marked
 
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang EntropiStatistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
Statistik Maxwell-Boltzmann & Interpretasi Statistik tentang Entropi
 
PERULANGAN (LOOPING)
PERULANGAN (LOOPING)PERULANGAN (LOOPING)
PERULANGAN (LOOPING)
 
Jurnal lengkap
Jurnal lengkapJurnal lengkap
Jurnal lengkap
 
Fisika Matematika I (1 - 2) Bil kompleks
Fisika Matematika I (1 - 2) Bil kompleksFisika Matematika I (1 - 2) Bil kompleks
Fisika Matematika I (1 - 2) Bil kompleks
 
52165275 konsep-elektrostatik
52165275 konsep-elektrostatik52165275 konsep-elektrostatik
52165275 konsep-elektrostatik
 
Momentum impuls tumbukan
Momentum impuls tumbukanMomentum impuls tumbukan
Momentum impuls tumbukan
 

Similar to CPP Pendalaman String

Pertemuan 6 Fungsi String
Pertemuan 6 Fungsi StringPertemuan 6 Fungsi String
Pertemuan 6 Fungsi String
Endang Retnoningsih
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdf
Jurnal IT
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdf
Jurnal IT
 
Pertemuan4.ppt
Pertemuan4.pptPertemuan4.ppt
Pertemuan4.ppt
ssuser3901ab
 
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
Ekha Cahya Nugraha
 
Bahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsiBahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsi
Jevri Ardiansah
 
Modul 2 - Tipe Data_ pusitell
Modul 2 - Tipe Data_ pusitellModul 2 - Tipe Data_ pusitell
Modul 2 - Tipe Data_ pusitell
staffpengajar
 
Algoritma&Pemrograman C++ Pertemuan 10
Algoritma&Pemrograman C++ Pertemuan 10Algoritma&Pemrograman C++ Pertemuan 10
Algoritma&Pemrograman C++ Pertemuan 10
Menny SN
 
Dasar c
Dasar cDasar c
Dasar c
Toni Yulianto
 
Tipe data
Tipe dataTipe data
Tipe data
kafin0607
 
Manipulasi string
Manipulasi stringManipulasi string
Manipulasi string
andrian_hatake
 
Array lanjutan
Array lanjutanArray lanjutan
Array lanjutan
Akmal Fajar
 
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
555560
 

Similar to CPP Pendalaman String (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
 

CPP Pendalaman String

  • 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