![]() |
| String Dalam C++ |
Pengenalan String
String adalah sekumpulan dari karakter, baik itu berupa karakter huruf, angka, spasi atau karakter lain. Dalam C++ nilai string harus diapit dalam tanda petik satu ("_").
String dpat dideklarasikan dengan menggunakan array karakter seperti berikut:
char var_name[N];
Memasukan Data String Dari Keyboard
Setelah suatu variabel string didefinisikan, kita dapat mengisi data tersebut secara langsung atau dari keyboard dengan menggunakan fungsi cin.
Contoh program:
Output :
Masukkan sebuah kata Assalamu'alaikum
Yang Anda Masukkan : Assalamu'alaikum
Program di atas dapat dimodifikasi seperti berikut:
Output:
Masukkan sebuah kata Hello World
Yang Anda Masukkan : Hello World
Selain itu anda juga dapat menggunaakn fungsi gets(var) dari prototype stdio.h.
Output:
#include <iostream.h>
#include <conio.h>
void main() {
char teks[13];
clrscr();
cout << "Masukkan sebuah kata ";
cin >> teks;
cout << "Yang Anda Masukkan : " << teks << endl;
getch();
}
Output :
Masukkan sebuah kata Assalamu'alaikum
Yang Anda Masukkan : Assalamu'alaikum
Fungsi cin tidak menerima spasi, jika anda memasukkan karakter yang mengandung spasi, karakter setelahnya tidak akan disimpan. Untuk mengatasi masalah ini, tambahkan fungsi berikut:
cin.get(var, length)
atau
cin.getline(var, length)
Program di atas dapat dimodifikasi seperti berikut:
#include <iostream.h>
#include <conio.h>
void main() {
char teks[13];
clrscr();
cout << "Masukkan sebuah kata ";
cin.get(teks, 13);
cout << "Yang Anda Masukkan : " << teks << endl;
getch();
}
Output:
Masukkan sebuah kata Hello World
Yang Anda Masukkan : Hello World
Selain itu anda juga dapat menggunaakn fungsi gets(var) dari prototype stdio.h.
Fungsi Manipulasi String
Borland C++ menyediakan beberapa jenis fungsi yang digunakan untuk manipulasi string. Berikut beberapa fungsi untuk manipulasi string:
Contoh program:Fungsi | File Header | Keterangan |
strcpy() | String.h | digunakan untuk menyalin string dari variabel asal ke tujuan syntax: strcpy(tujuan, asal) |
strlen() | String.h | digunakan untuk mengetahui jumlah karakter dalam string syntax: strlen(string) |
strrev() | String.h | digunakan utuk membalik letak urutan string syntax: strrev(string) |
strcat() | String.h, ctype.h | Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan. Syntax: Strcat(tujuan, sumber) |
strcmp() | String.h | Digunakan untuk membandingkan string pertama dan string kedua Syntax: Strcmp(str1, str2) |
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#define MAX 30
void main() {
char str1[MAX], str2[MAX];
cout << "Masukkan sembarang kalimat : ";
gets(str1);
strcpy(str2, str1);
cout << "strcpy test : " << endl;
cout << "str1 : " << str1 << endl;
cout << "str2 : " << str2 << endl;
cout << "\n\nstrlen test : " << endl;
cout << "panjang teks : " << strlen(str2);
cout << "\n\nstrrev test : " << endl;
cout << "teks terbalik : " << strrev(str2);
getch();
}
Output:
Masukkan sembarang kalimat : Hello Borland C++
strcpy test :
str1 : Hello Borland C++
str2 : Hello Borland C++
strlen test :
panjang teks : 17
strrev test :
teks terbalik : ++C dnalroB olleH
Contoh program:Fungsi konversi string
Beberapa fungsi untuk konversi string dapat dilihat dalam tabel berikut:Fungsi | File Header | Keterangan |
atof() | math.h | Digunakan untuk mengubah string (angka) menjadi blangan float |
atoi() | stdlib.h | Digunakan untuk mengubah string (angka) menjadi blangan integer |
atol() | stdlib.h | Digunakan untuk mengubah string (angka) menjadi blangan long integer |
strlwr() | String.h | Digunakan untuk mengubah huruf kapital dalam string menjadi huruf kecil. |
strupr() | strupr() | Digunakan untuk mengubah huruf kecil dalam string menjadi huruf kapital. |
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void main() {
char teks[30];
char angka_s[10];
float angka_f;
int angka_i;
strcpy(teks, "Hello World");
strcpy(angka_s,"78.56");
angka_f = atof(angka_s) + 80;
angka_i = atoi(angka_s) + 12;
cout << "angka_f sekarang : " << angka_f;
cout << "\nangka_i sekarang : " << angka_i;
cout << "\nhuruf kecil : " << strlwr(teks);
cout << "\nhuruf kapital : " << strupr(teks);
getch();
}
Output:
Latihan
Output:
Source Code:
Referensi :
Modul Praktikum Pemrograman Sistemangka_f sekarang : 158.56
angka_i sekarang : 90
huruf kecil : hello world
huruf kapital : HELLO WORLD
Latihan
Output:
| String Array |
Source Code:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define jml 5
/**
*Wawan Beneran
*gatewan.com
*/
void main()
{
char nama[jml][30];
//input
for (int i=0; i<jml; i++){
cout << "nama mahasiswa " <<(i+1) <<" : ";
gets(nama[i]);
}
//output
for (int x=0;x<jml;x++){
cout << nama[x];
}
getch();
}
Referensi :
STMIK El Rahma Yogyakarta
Oleh : Eding Muh. Saprudin, S.Kom
Blog : http://edokode.com

Halo Hastri Pindha,
BalasHapusbukan, 13 itu adalah panjang "string" dimana "string" itu merupakan class enkapsulasi dari array karakter, sedangkan 'char' (karakter) merupakan tipe data primitif, sehingga bisa disimpulkan bahwa, string itu terdiri dari beberapa karakter, sedangkan karakter itu berdiri sendiri.
kalo string itu diapit oleh tanda petik dua ("_"), contoh = "a", "assalamualaikum", "halo" dll.
sedangkan karakter itu diapit oleh tanda petik satu ('_'), contoh = 'a', 'hallo', 'assalamualaikum' dll.
sekarang, kenapa pada contoh diatas teks[13] kata 'assalamualaikum' yang panjangnya 15 karakter (secara EYD) tapi sebenarnya hanya 1 karakter (secara pemrograman) sehingga bisa ditampilkan, karena length yang digunakan masih pada indeks ke-0, padahal indeks totalnya adalah 12, kenapa hanya sampai 12? padahal length yang diberikan adalah 13, karena indeks string dimulai dari nol (0).
Jadi, jika ingin memakai semua length teks[13], maka silakan rubah codenya menjadi seperti ini :
char teks[13]={'a','s','s','a','l','a','m','u','a','l','a','i','k','u','m'};
maka nanti akan muncul notifikasi error "Too many initializers"
Kesimpulan:
Jadi perbedaannya terletak di sini :
'a','s','s','a','l','a','m','u','a','l','a','i','k','u','m' tidak sama dengan 'assalamualaikum'
saya kira itu saja Hastri Pindha, thanks atas diskusinya
bersihinnya pake clrscr(); gan jangan pake itu
BalasHapusspasi yang dimaksud jeda waktu atau spasi untuk karakter?, kalo misal jeda waktu tinggal pake break; atau kalo mau pake spasi untuk karakter biasa dibuatkan variabel yang dikhususkan buat nampung spasi contoh (spasi=" ";)
BalasHapus