Pertemuan 10
Cendana25.blogspot.com
8/5/2017
Menny
cendana25.blogspot.com
STRING: DERETAN KARAKTER
mengulas tentang dua jenis string yangdisediakan di C++,berbagai
operasi yang terkait dengan string dibahas dengan tujuan agar
anda menjadi akrab dengan string.
MATERI
8/5/2017
Menny
cendana25.blogspot.com
STRING ITU ADA DUA MACAM ,YA? BISA DI BENTUK MELALUI ARRAY
KARAKTER DAN TIPE STRING?
C++ memang memdukung dua macam string. String pertama dibentuk
melalui array karakter . string jenis ini , selalu melibatkan karakter null
(0) sebgai penanda akhir string. Sebagai ontoh,untuk menampung nama
kota yang maksimal mengandung 12 karakter,diperlukan deklarasi
seperti brikut:
Char namakota[13];satu perlu elemen ditambahkan untugk menyimpan
karakter null .itulah sebabnya ,angkah 13 diberikan pada bagian[].
Tentu saja,walaupun namakota bisa menampung 13 karakter (termasuk
null ), bukan berarti bahwa nama kota yang di berikan ke namakota harus
sama dengan 12 . nama kota yang lebih pendek (kurang dari 12 karakter)
tetap bisa disimpan di namakota .
8/5/2017
Menny
cendana25.blogspot.com
BAGAIMANA CARA MENGISIKAN STRING KE ARRAY KARAKTER
C++ Menyediakan fungsi yang secra khusus ditujukan untuk keperluan ini.
gsi ifungsi yang dimaksud adalah : STRPCY() . jika menggunakan fungsi ini ,
jangan lupa menambahkan : #include<cstring>
8/5/2017
Menny
cendana25.blogspot.com
contoh
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char namaKota[13];
strcpy(namaKota, "Palangkaraya");
cout << "Kota : " << namaKota << endl;
strcpy(namaKota, "Yogya");
cout << "Kota : " << namaKota << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
string namaKota;
namaKota = "Palangkaraya";
cout << "Kota : " << namaKota << endl;
namaKota = "Yogya";
cout << "Kota : " << namaKota << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
CONTOH FUNGSI- FUNGSI YANG MEMUDAHKAN MEMANIPULASI
STRING YANG BERBASIS ARRAY KARAKTER
fungsi keterangan
Strlen() prototype :size_t strlen (const char * str); Berguna untuk mendapatkan jumlah karakter dalam string str.
Strcpy() prototype: char * strcpy (char * destinasi , const
char, * sumber)
Berguna untuk menyalin string sumber ke distinasi. Nalai baik
berupa pointer yang menunjukan ke destinasi .
Strcat() prototype: char * strcat (char * destinasi , const
char )
Berguna untuk menambah string sumber ke destinasi. Nilai balik
berupa pointer yg menunjuk ke destinasi
Strchr()
Prototype:
Char * strchr (char * str, int karakter );
Berguna untuk mencari posisi pertama karakter dalam string str.
Nilai balik berupa pointer yg menunjuk ke karakter dalam string str
atau berupa poniter null kalau yg dicari tidak ditemukan
Strstr()
Prototype:
Char * strstr ( char * str1, cons char * str2);
Berguna utk mencari posisi pertama string str2 dalam str1. Nilai
balik berupa pointer yg menunjuk ke string str2 dalam str1 atau
berupa pointer null kalu yg dicari tidak ditemukan
8/5/2017
Menny
cendana25.blogspot.com
int main() {
char kalimat[100] = "";
char kata1[] = "belajar ";
char kata2[] = "C++";
strcpy(kalimat, "Selamat ");
strcat(kalimat, kata1);
strcat(kalimat, kata2);
if (strstr(kalimat, "ajar"))
cout << "Substring "ajar"
terdapat pada ""
<< kalimat << """ << endl;
else
cout << "Substring "ajar" tidak
terdapat pada ""
<< kalimat << """ << endl;
if (strstr(kalimat, "AJAR"))
cout << "Substring "AJAR"
terdapat pada ""
<< kalimat << """ << endl;
else
cout << "Substring "AJAR" tidak
terdapat pada ""
<< kalimat << """ << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
Apakah cin dapat dipakai utk memasukan string
yang berbasis array karakter ??
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char kalimat[100];
cout << "Kalimat: ";
cin.getline(kalimat, 100);
cout << "Kalimat : " << kalimat << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
Persamaan antara string berbasis array karakter dan tipe string
String berbasis array karakter String menggunakan tipe string
Char namakota[13]; String namakota;
Strcpy(namakota,”Kupang”); Namakota=”Kupang”
Char x[25]=”kota”;
Strcat(x, “semarang”);
Hasilnya : x berisi “kota semarang”
String x = “kota”;
X=x + “semarang”;
Hasilnya : x = “kota semarang”
8/5/2017
Menny
cendana25.blogspot.com
Contoh membandingkan string
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char string1[20], string2[20];
cout << "String pertama: ";
cin.getline(string1, 20);
cout << "String kedua: ";
cin.getline(string2, 20);
int posisi = strcmp(string1, string2);
if (posisi == 0)
cout << "Kedua string sama" << endl;
else {
cout << "Kedua string TIDAK sama" <<
endl;
cout << "Hasil strcmp() = " << posisi <<
endl;
}
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
Contoh lagi
#include <iostream>
#include <string>
using namespace std;
int main() {
string string1, string2;
cout << "String pertama: ";
getline(cin, string1);
cout << "String kedua: ";
getline(cin, string2);
if (string1 == string2)
cout << "Kedua string sama" << endl;
else
if (string1 > string2)
cout << string1 << " > " << string2 <<
endl;
else
cout << string1 << " < " << string2 <<
endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
Fungi-fungsi yang melekat pada tipe string
Fungsi anggota Kegunaan
Length ata size () Memberikan nilai balik berupa jumlah karakter dalam string
Empty () Memberikan nilai balik berupa true atau false
Clear () Mengosongkan string
At(pos) Memberika nilai balik berupa karakter pada posisi pos
Substr(pos, n) Menghasilkan substring berupa n karakter dimulai posisi pos
Erase(pos, str) Menghapus n karakter dimulai posisi pos
Replace(pos, n, str) Mengganti n karakter dimulai dari pos dengan string str
Insert (pos, str) Menyisipkan string string str ke posisi pos
Append(str) Menyisipkan string str dibagian akhir objek
Compare(str) Membandingkan string str dengan string objek. Nilai balik
berupa 0 kalau kedua string sama
Find (str) Mencari posisi string strdalam string objek
Rfind(str) Sama seperti find tapi menghasilkan posisi terakhir str
Find_first_of(str) Mencari posisi salah satu karakter awal
Find_last_of(str) Mencari posisi salah satu karakter akhir
8/5/2017
Menny
cendana25.blogspot.com
#include <iostream>
#include <string>
using namespace std;
int main() {
string st = "Abrakadabra. Berubahlah!";
cout << "Isi st semula: " << st << endl;
st.erase(0, 4); // Hapus 4 karakter
pertama
cout << "Isi st setelah erase(0, 4): " << st
<< endl;
st.insert(9, "Hoya! ");
cout << "Isi st setelah insert(9,
"Hoya! "): " << st << endl;
st.clear();
if (st.empty())
cout << "Isi st sekarang kosong"
<< endl;
return 0;
}
Contoh :
8/5/2017
Menny
cendana25.blogspot.com
Apakah ada fungsi mengubah huruf kecil menjadi huruf kapital ?
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string strupr(string st);
int main() {
string st;
cout << "String: ";
getline(cin, st);
cout << strupr(st) << endl;
return 0;
}
string strupr(string st) {
string hasil = "";
for (int i = 0; i < st.length(); i++)
hasil = hasil +
char(toupper(st[i]));
return hasil;
}
8/5/2017
Menny
cendana25.blogspot.com
catatan
Pada cotoh strupr, typecasting
Char (toupper(st[i]))
Diperlukan mengingat nilai balik toupper() berupa int
Selain toupper, terdapat tolower() untuk mengubah huruf kapital menjadi
huruf kecil
8/5/2017
Menny
cendana25.blogspot.com
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string strupr(string st);
int main() {
string st;
int jumHurufKecil = 0;
int jumHurufKapital = 0;
int jumPungtuasi = 0;
int jumDigit = 0;
cout << "String: ";
getline(cin, st);
for (int i = 0; i <
st.size(); i++) {
char kar = st[i];
if (islower(kar))
jumHurufKecil++;
if (isupper(kar))
jumHurufKapital++;
if (ispunct(kar))
jumPungtuasi++;
if (isdigit(kar))
jumDigit++;
}
cout << "Huruf kecil : " <<
jumHurufKecil << endl;
cout << "Huruf kapital : " <<
jumHurufKapital << endl;
cout << "Pungtuasi : " <<
jumPungtuasi << endl;
cout << "Digit : " <<
jumDigit << endl;
return 0;
}
string strupr(string st) {
string hasil = "";
for (int i = 0; i < st.length(); i++)
hasil = hasil +
char(toupper(st[i]));
return hasil;
}
8/5/2017
Menny
cendana25.blogspot.com
Cara conversi string bertipe string ke array karakter
int main() {
char teks[255];
string st = "ABCDE 123";
// Memastikan bahwa jumlah karakter
// tidak melebihi 254
int panjang = st.size() > 254? 254 : st.size();
// Salin ke teks
int i;
for (i = 0; i < panjang; i++)
teks[i] = st[i];
teks[i] = '0';
// Tampilkan teks
cout << teks << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
char teks[] = "ABCDE 123";
string st = teks;
cout << st << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
Tugas
• Buatlah sebuah program biodata;
8/5/2017
Menny
cendana25.blogspot.com
8/5/2017
Menny
cendana25.blogspot.com
8/5/2017
Menny
cendana25.blogspot.com

Algoritma&Pemrograman C++ Pertemuan 10

  • 1.
  • 2.
    STRING: DERETAN KARAKTER mengulastentang dua jenis string yangdisediakan di C++,berbagai operasi yang terkait dengan string dibahas dengan tujuan agar anda menjadi akrab dengan string. MATERI 8/5/2017 Menny cendana25.blogspot.com
  • 3.
    STRING ITU ADADUA MACAM ,YA? BISA DI BENTUK MELALUI ARRAY KARAKTER DAN TIPE STRING? C++ memang memdukung dua macam string. String pertama dibentuk melalui array karakter . string jenis ini , selalu melibatkan karakter null (0) sebgai penanda akhir string. Sebagai ontoh,untuk menampung nama kota yang maksimal mengandung 12 karakter,diperlukan deklarasi seperti brikut: Char namakota[13];satu perlu elemen ditambahkan untugk menyimpan karakter null .itulah sebabnya ,angkah 13 diberikan pada bagian[]. Tentu saja,walaupun namakota bisa menampung 13 karakter (termasuk null ), bukan berarti bahwa nama kota yang di berikan ke namakota harus sama dengan 12 . nama kota yang lebih pendek (kurang dari 12 karakter) tetap bisa disimpan di namakota . 8/5/2017 Menny cendana25.blogspot.com
  • 4.
    BAGAIMANA CARA MENGISIKANSTRING KE ARRAY KARAKTER C++ Menyediakan fungsi yang secra khusus ditujukan untuk keperluan ini. gsi ifungsi yang dimaksud adalah : STRPCY() . jika menggunakan fungsi ini , jangan lupa menambahkan : #include<cstring> 8/5/2017 Menny cendana25.blogspot.com
  • 5.
    contoh #include <iostream> #include <cstring> usingnamespace std; int main() { char namaKota[13]; strcpy(namaKota, "Palangkaraya"); cout << "Kota : " << namaKota << endl; strcpy(namaKota, "Yogya"); cout << "Kota : " << namaKota << endl; return 0; } #include <iostream> #include <string> using namespace std; int main() { string namaKota; namaKota = "Palangkaraya"; cout << "Kota : " << namaKota << endl; namaKota = "Yogya"; cout << "Kota : " << namaKota << endl; return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 6.
    CONTOH FUNGSI- FUNGSIYANG MEMUDAHKAN MEMANIPULASI STRING YANG BERBASIS ARRAY KARAKTER fungsi keterangan Strlen() prototype :size_t strlen (const char * str); Berguna untuk mendapatkan jumlah karakter dalam string str. Strcpy() prototype: char * strcpy (char * destinasi , const char, * sumber) Berguna untuk menyalin string sumber ke distinasi. Nalai baik berupa pointer yang menunjukan ke destinasi . Strcat() prototype: char * strcat (char * destinasi , const char ) Berguna untuk menambah string sumber ke destinasi. Nilai balik berupa pointer yg menunjuk ke destinasi Strchr() Prototype: Char * strchr (char * str, int karakter ); Berguna untuk mencari posisi pertama karakter dalam string str. Nilai balik berupa pointer yg menunjuk ke karakter dalam string str atau berupa poniter null kalau yg dicari tidak ditemukan Strstr() Prototype: Char * strstr ( char * str1, cons char * str2); Berguna utk mencari posisi pertama string str2 dalam str1. Nilai balik berupa pointer yg menunjuk ke string str2 dalam str1 atau berupa pointer null kalu yg dicari tidak ditemukan 8/5/2017 Menny cendana25.blogspot.com
  • 7.
    int main() { charkalimat[100] = ""; char kata1[] = "belajar "; char kata2[] = "C++"; strcpy(kalimat, "Selamat "); strcat(kalimat, kata1); strcat(kalimat, kata2); if (strstr(kalimat, "ajar")) cout << "Substring "ajar" terdapat pada "" << kalimat << """ << endl; else cout << "Substring "ajar" tidak terdapat pada "" << kalimat << """ << endl; if (strstr(kalimat, "AJAR")) cout << "Substring "AJAR" terdapat pada "" << kalimat << """ << endl; else cout << "Substring "AJAR" tidak terdapat pada "" << kalimat << """ << endl; return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 8.
    Apakah cin dapatdipakai utk memasukan string yang berbasis array karakter ?? #include <iostream> #include <cstring> using namespace std; int main() { char kalimat[100]; cout << "Kalimat: "; cin.getline(kalimat, 100); cout << "Kalimat : " << kalimat << endl; return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 9.
    Persamaan antara stringberbasis array karakter dan tipe string String berbasis array karakter String menggunakan tipe string Char namakota[13]; String namakota; Strcpy(namakota,”Kupang”); Namakota=”Kupang” Char x[25]=”kota”; Strcat(x, “semarang”); Hasilnya : x berisi “kota semarang” String x = “kota”; X=x + “semarang”; Hasilnya : x = “kota semarang” 8/5/2017 Menny cendana25.blogspot.com
  • 10.
    Contoh membandingkan string #include<iostream> #include <cstring> using namespace std; int main() { char string1[20], string2[20]; cout << "String pertama: "; cin.getline(string1, 20); cout << "String kedua: "; cin.getline(string2, 20); int posisi = strcmp(string1, string2); if (posisi == 0) cout << "Kedua string sama" << endl; else { cout << "Kedua string TIDAK sama" << endl; cout << "Hasil strcmp() = " << posisi << endl; } return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 11.
    Contoh lagi #include <iostream> #include<string> using namespace std; int main() { string string1, string2; cout << "String pertama: "; getline(cin, string1); cout << "String kedua: "; getline(cin, string2); if (string1 == string2) cout << "Kedua string sama" << endl; else if (string1 > string2) cout << string1 << " > " << string2 << endl; else cout << string1 << " < " << string2 << endl; return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 12.
    Fungi-fungsi yang melekatpada tipe string Fungsi anggota Kegunaan Length ata size () Memberikan nilai balik berupa jumlah karakter dalam string Empty () Memberikan nilai balik berupa true atau false Clear () Mengosongkan string At(pos) Memberika nilai balik berupa karakter pada posisi pos Substr(pos, n) Menghasilkan substring berupa n karakter dimulai posisi pos Erase(pos, str) Menghapus n karakter dimulai posisi pos Replace(pos, n, str) Mengganti n karakter dimulai dari pos dengan string str Insert (pos, str) Menyisipkan string string str ke posisi pos Append(str) Menyisipkan string str dibagian akhir objek Compare(str) Membandingkan string str dengan string objek. Nilai balik berupa 0 kalau kedua string sama Find (str) Mencari posisi string strdalam string objek Rfind(str) Sama seperti find tapi menghasilkan posisi terakhir str Find_first_of(str) Mencari posisi salah satu karakter awal Find_last_of(str) Mencari posisi salah satu karakter akhir 8/5/2017 Menny cendana25.blogspot.com
  • 13.
    #include <iostream> #include <string> usingnamespace std; int main() { string st = "Abrakadabra. Berubahlah!"; cout << "Isi st semula: " << st << endl; st.erase(0, 4); // Hapus 4 karakter pertama cout << "Isi st setelah erase(0, 4): " << st << endl; st.insert(9, "Hoya! "); cout << "Isi st setelah insert(9, "Hoya! "): " << st << endl; st.clear(); if (st.empty()) cout << "Isi st sekarang kosong" << endl; return 0; } Contoh : 8/5/2017 Menny cendana25.blogspot.com
  • 14.
    Apakah ada fungsimengubah huruf kecil menjadi huruf kapital ? #include <iostream> #include <string> #include <cctype> using namespace std; string strupr(string st); int main() { string st; cout << "String: "; getline(cin, st); cout << strupr(st) << endl; return 0; } string strupr(string st) { string hasil = ""; for (int i = 0; i < st.length(); i++) hasil = hasil + char(toupper(st[i])); return hasil; } 8/5/2017 Menny cendana25.blogspot.com
  • 15.
    catatan Pada cotoh strupr,typecasting Char (toupper(st[i])) Diperlukan mengingat nilai balik toupper() berupa int Selain toupper, terdapat tolower() untuk mengubah huruf kapital menjadi huruf kecil 8/5/2017 Menny cendana25.blogspot.com
  • 16.
    #include <iostream> #include <string> #include<cctype> using namespace std; string strupr(string st); int main() { string st; int jumHurufKecil = 0; int jumHurufKapital = 0; int jumPungtuasi = 0; int jumDigit = 0; cout << "String: "; getline(cin, st); for (int i = 0; i < st.size(); i++) { char kar = st[i]; if (islower(kar)) jumHurufKecil++; if (isupper(kar)) jumHurufKapital++; if (ispunct(kar)) jumPungtuasi++; if (isdigit(kar)) jumDigit++; } cout << "Huruf kecil : " << jumHurufKecil << endl; cout << "Huruf kapital : " << jumHurufKapital << endl; cout << "Pungtuasi : " << jumPungtuasi << endl; cout << "Digit : " << jumDigit << endl; return 0; } string strupr(string st) { string hasil = ""; for (int i = 0; i < st.length(); i++) hasil = hasil + char(toupper(st[i])); return hasil; } 8/5/2017 Menny cendana25.blogspot.com
  • 17.
    Cara conversi stringbertipe string ke array karakter int main() { char teks[255]; string st = "ABCDE 123"; // Memastikan bahwa jumlah karakter // tidak melebihi 254 int panjang = st.size() > 254? 254 : st.size(); // Salin ke teks int i; for (i = 0; i < panjang; i++) teks[i] = st[i]; teks[i] = '0'; // Tampilkan teks cout << teks << endl; return 0; } #include <iostream> #include <string> using namespace std; int main() { char teks[] = "ABCDE 123"; string st = teks; cout << st << endl; return 0; } 8/5/2017 Menny cendana25.blogspot.com
  • 18.
    Tugas • Buatlah sebuahprogram biodata; 8/5/2017 Menny cendana25.blogspot.com
  • 19.
  • 20.