STRING
6.1 Tujuan
1. Tentang konsep string
2. Menjelaskan tentang operasi I/O pada string
3. Menjelaskan cara mengakses elemen string
4. Menjelaskan berbagai fungsi mengenai string
Atau
Char NAMA_VARIABEL[] = “nilai”;
6.2.2 Inputan string
Pemasukan data string dapat dilakukan dengan cara penginputkan
variabel biasa yaitu dengan menggunkan cin. Akan tetapi jika inputan
string memiliki lebih dari 1 kata (dipisahkan oleh spasi) maka kata
selanjutnya tidak akan terinput. Untuk mengatasi hal ini maka digunakan
sintaks getline.
#include <iostream>
using namespace std;
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
string nama;
cout << "Masukan : ";
cin >> nama;
cout << "Nama saya adalah : "<< nama;
return 0 ;
}
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
char nama[]="AGUS";
cout<< "Nama : AGUS"<<endl;
cout<<"banyak karakter variabel nama :
"<<strlen(nama);
return 0;
}
b. Output
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
char kata1[]=" Teknik";
char kata2[]=" Informatika";
strcat(kata1, kata2);
cout <<kata1;
return 0;
}
b. Output
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
char str1[]=" HALLO";
char str2[]=" hallo";
char str3[]=" HALLO";
cout<< " perbandingan"<<str1<< " dan"<<str2<< " adalah
: "<<strcmp(str1,str2)<<endl;
cout<< " perbandingan"<<str1<< " dan"<<str3<< " adalah
: "<<strcmp(str1,str3)<<endl;
cout<< " perbandingan"<<str2<< " dan"<<str1<< " adalah
: "<<strcmp(str2,str1)<<endl;
return 0;
}
b. Output
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
char A[]="DASPRO";
cout<< "Mencari karakter P : "<<strchr (A,'P')<<endl;
cout<< "Mencari karakter X : "<<strchr (A,'x')<<endl;
return 0;
}
b. Output
6.4 Tugas
1. Tugas 1
Perbaikilah progame berikut hingga menghasilkan output yang benar
#include <iostream>
using namespace std;
int main()
{
cout << endl;
cout << "Nama\t: ILHAM HIDAYAT" << endl;
cout << "Nim\t: 32601800012" << endl << endl;
char nama, alamat, email;
cout <<"masukan nama : ";
cin.getline(cin, nama);
cout << "Masukan email :";
getline(cin, email);
cout << "Masukan alamat :";
getline(cin);
system("clear");
cout << "Nama anda : "<< nama <<endl;
cout << "email anda : "<< email <<endl;
cout << "almat anda : "<< alamat <<endl;
return 0;
}
a. Source code
#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
system("cls");
cout << "Nama Anda\t: " << nama << endl;
cout << "Email Anda\t: " << email << endl;
cout << "Alamat Anda\t: " << alamat << endl;
return 0;
}
b. Output
main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
string kata="?ASPROG";
char ch;
for(ch='A';kata!="DASPROG";ch++)
{
cout<<kata<<endl;
kata[0]=ch;
}
cout<<"setelah loop berhenti,kata adalah " << kata;
getche();
}
Progam 2
#include <iostream>
#include <conio.h>
#include <string.h>
main()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
char kata[6];
char ch;
strcpy(kata, "?ASPROG");
for(ch = 'A'; strcmp(kata, "DASPROG"); ch++)
{
cout << kata << endl;
kata[0] = ch;
}
cout << "Setelah loop Berhenti, Kata adalah "<< kata;
getche();
}
b. Output
c. Penjelasan
Pada gambar diatas merupakan perbandingan antara kedua
program yang menghasilkan tampilan output yang sama, namun
berdeda dalam penulisan sintaks. Pada program pertama tipe data
berupa char dengan variabel ch dan string berupa variabel kata
dengan nilai “?ASPROG”. pada program terdapat perulangan for
dengan kondisi1 berupa ch = karakter ‘A’, kondisi2 berupa variabel
kata != “DASPRO, dan kondisi3 berupa variabel ch++(ditambah 1
disetiap perulangan), dan menjalankan statement. Variabel ch
melakukan perulangan sampai batas kondisi2, dan setiap perulangan
akan ditambah 1. Penambahan karakter sesuai dari urutan ASCII.
Statement menampilkan tampilan variabel kata, dengan array ke-0
pada variabel kata. Selanjutnya menampilkan tampilan “setelah loop
berhenti, kata adalah ” diikuti dengan variabel kata.
Kemudian pada gambar berikutnya program kedua tipe data
yang digunakan adalah char berupa variabel kata dengan array 6
digit. Dan variabel ch. Selanjutnya terdapat fungsi string strcpy(kata,
“?ASPROG”) maksudnya menyalin atau meng-copy string “?
ASPROG” ke dalam variabel kata, sehingga variabel kata berisi
nilai “?ASPROG”. berbeda dengan program sebelumnya nilai
variabel kata sudah dideklarasikan nilainya. Kemudian hasilnya
akan ditampilkan seperti pada gambar diatas.
3. Tugas 3
Buatlah progam yang memuat 3 pilihan yaiti
a. Mengubah plaint text(pesan/tekx asli) manjadi chiper text(pesan/text
ter-enskripsi/tersandi)
b. Mengubah chiper text(pesan/text ter-enskripsi/tersandi) manjadi
plaint text(pesan/tekx asli)
c. Keluar
d. Kunci untuk men-enskripsi pesan tersebut adalah gerser 3 huruf.
Gambar 6. 11 soal tugas 3
a. Source code
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
main ()
{
cout<<" ===========================\n";
cout<<" = Nama : Dzikry Alfian ="<<endl;
cout<<" =-------------------------= \n";
cout<<" = NIM : 32602000024 ="<<endl;
cout<<" ===========================\n"<<endl;
int pilih, i, n;
char plaint[100], chipert[100];
again:
cout << "Silahkan masukan 1, 2, atau 3\n";
cout << "1. Cari Chipert Text\n";
cout << "2. Cari Plaint Text\n";
cout << "3. Keluar\n";
cout << "\t\tInput : ";
cin>>pilih;
std::cin.ignore();
if (pilih==1)
{
cout << "Plaint text : ";
cin.getline(plaint,100);
n = strlen (plaint);
cout << "\nChiper text : ";
for (i=0;i<n;i++)
{
chipert[i] = (plaint[i]+3);
cout << chipert[i];
}
//getche();
cout<<endl<<endl;
goto again;
}
else if(pilih==2)
{
cout << "Chiper text : ";
cin.getline (chipert,100);
n = strlen (chipert);
cout << "\nPlaint text : ";
for (i=0;i<n;i++)
{
plaint[i] = (chipert[i]-3);
cout << plaint[i];
}
cout<<endl<<endl;
// getche();
goto again;
}
else
cout<< "Keluar Dari Program, Terimakasih";
exit(0);
}
b. Output
6.5 Kesimpulan
String adalah sederetan simbol yang tidak tertentu panjangnya,
yang dianggap sebagai panjang satu unit. String dapat berupa huruf,
angka, karakter khusus, maupun karakter Unicode. Dalam bahasa C++
terdapat beberapa fungsi yang digunakan untuk operasi pengolahan string.
String dapat dimanipulasi dengan aturan tertentu. Di mana bahasa C++
telah menyediakan semua ini ke dalam pustakanya.
Berikut adalah fungsi-fungsi yang digunakan untuk melakukan
manipulasi string :
1. Fungsi strcat digunakan untuk menggabungkan dua string menjadi satu.
2. Fungsi strlen digunakan untuk menghitung panjang karakter pada suatu
string. strlen adalah fungsi yang bertipe data integer.
3. Fungsi strcpy digunakan untuk menyalin isi string ke suatu variabel.
4. Fungsi strupr digunakan untuk mengubah semua karakter huruf yang
terdapat pada suatu variabel menjadi huruf besar semua (Uppercase).
5. Fungsi strlwr digunakan untuk mengubah semua karakter huruf yang
terdapat pada suatu variable menjadi huruf kecil semua (Lowercase).