DASAR STRING
String sangat memudahkan tugas pemogram. Dengan menggunakan
string, pemogram dapat menampilkan pesan kesalahan, menampilkan prompt bagi
masukan keyboard ataupun memberikan informasi pada layar dengan mudah.
Seperti halnya tipe data yang lain, string dapat berupa
konstanta atau variabel. Konstanta string sudah biasa anda sertakan pada
program. Misalnya pada pernyataan :
cout << “C++”<<endl;
terdapat konstanta string “C++”. Tetapi sejauh ini, variabel
string belum diperkenalkan.
Konstanta
String
Suatu konstanta string ditulis dengan awalan dan akhiran
tanda petik ganda(“ “), misalnya: “C++”. Konstanta string seperti diatas
disimpan dalam memori secara berurutan.
Setiap karakter menempati memory 1 byte. Setelah karakter
yang terakhir terdapat karakter Null (karakter dengan nilai ASCII sama dengan
nol atau disimbolkan dengan “\0”, yaitu tanda \ dikuti dengan nol).
Bila suatu string hanya berisi karakter NULL, string disebut
sebagai string kosong.
Variabel String
Variabel string adalah variabel yang dipakai untuk menyimpan
string. Misalnnya:
char teks[10];
merupakan pernyataan untuk mendefinisikan variabel string
dengan panjang maksimal 9 karakter( sudah termasuk karakter NULL). Perlu
diketahui , pernyataan di atas tidak lain untuk mendefinisikan array bertipe
karakter.
Memasukan Data String
Setelah suatu variabel string didefinisikan, Anda bisa
mengisikan data ke variabel tersebut. Pemasukan data dapat ditangani oleh data
cin, seperti contoh program di bawah ini :
#include<iostream.h>
#include<conio.h>
void main()
{
char teks[13];
clrscr();
cout<<"Masukan
sebuah kata :"<<endl;
cin>>
teks;
cout<<
"Kata yang tercetak
:"<<teks;
getch();
}
|
Hasilnya
Yang perlu diperhatikan adalah bahwa cin hanya dapat membaca
sebuah kata. Artinya karakter-karakter
yang terletak sesudah spasi tidak bisa ditampung pada teks. Ini disebabkan
operator << pada cin hanya bisa membaca masukan hingga terdapat spasi,
tab atau enter.
Untuk menampilkan agar dapat terbaca solusinya adalah
menambahkan fungsi get() pada objek cin (cin.get()) bisa dipakai untuk
keperluan ini. Sebagai contoh seperti program dibawah ini :
#include<iostream.h>
#include<conio.h>
void main()
{
char teks[13]; //string dengan panjang maksimal 12 karakter
clrscr(); //hapus layar
cout<<"Masukan sebuah kata :"<<endl;
cin.get(teks, 13);
cout<< "Kata yang tercetak :"<<teks;
getch();}
|
Tampak, bahwa karakter yan terletak sesudah spasi juga ikut
disimpan pada teks. Sekarang kita lihat kalau data yang dimasukan lebih dari 13
karakter maka hanya 12 karakter pertama yang disimpan pada teks, mengingat
argumen kedua dari fungsi get() diisi dengan 13 (satu karakter berisi Null).
Pada contoh program di atas dapat ditulis sebagai berikut :
cin.get(teks,
13)
Bisa juga ditulis sebagai berikut
:
cin.
Get(teks, sizeof(teks));
Fungsi
getline( )
Suatu masalah akan timbul kalau cin.get() digunakan 2 kali
seperti contoh program dibawah ini
#include<iostream.h>
#include<conio.h>
void main()
{
char nama[25];
char alamat[35];
clrscr(); //hapus layar
cout<<"Masukan
Nama :"<<endl;
cin.get(nama,
sizeof(nama));
cout<<
"Masukan Alamat
:"<<endl;
cin.get(alamat,sizeof(alamat));
cout<<"Nama:"<<nama<<endl;
cout<<"Alamat:"<<alamat<<endl;
getch();
}
|
Pada contoh di atas cin.get() pertama digunakan untuk
membaca nama yang kedua untuk membaca alamat. Ternyata program tidak memberikan
kesempatan untuk mengisi alamat. Hal ini terjadi karena get() yang pertama
tidak membuang kode newline(\n). Oleh karena get() tidak mengabaikan spasi
putih( spasi, tab , atau newline) maka get() kedua menjadi tidak berfungsi
sebagaimana mestinya. Cara untuk menyelesaikan masalah di atas dengan
menggunakan fungsi getline(), karena fungsi ini dapat membuang sisa data yang
tidak dibaca, termasuk newline itu sendiri. Pada contoh berikut, get() diganti
dengan getline().
Tampak bahwa dengan menggunakan getline( ), data alamat dapat
diisi.
Fungsi
strcpy
Bentuk dari dari strcpy() :
strcpy(string_target,string_awal)
Prototipe fungsi di atas ada pada file header string.h
Contoh program yang menggunakan strcpy():
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
char
teks[]=”C++ Oke”;
char
data [25];
clrscr();
//hapus layar
strcpy(data,teks);
// mengcopy isi teks ke data
cout<<”Isi
data :”<<data<<endl;
}
|
Fungsi
toupper dan tolower
Fungsi toupper() berguna untuk memperoleh huruf kapital dari
suatu huruf kecil. Nilai balik dari fungsi ini akan berupa seperti argumennya
kalau argumen tidak berisi huruf kecil.
Adapun fungsi tolower() adalah kebalikan dari toupper().
Fungsi ini memberikan nilai balik :
Berupa
huruf kecil kalau argumen berisi huruf kapital
Berupa
nilai seperti argumen kalau argumen tidak berupa huruf kecil
Kedua fungsi di atas memberikan nilai balik bertipe int dan
memiliki protipe pada file ctype.h
Contoh program :
#include<iostream.h>
#include<conio.h>
#include<ctype.h>
void main()
{
char
st[]=”saya suka C++”;
clrscr();
//hapus layar
for(int
i=0; st[i];i++)
st[i]=
toupper(st[i]);
cout<<st<<endl;
}
|
Pada contoh di atas,
st[i]= toupper(st[i]);
menyebabkan setiap
huruf kecil pada variabel st akan diganti dengan huruf kapital.
Fungsi
strlen( )
Panjang suatu string dapat diketahui dengan mudah
menggunakan fungsi strlen( ). Misalnya saja, didefinisikan :
char bunga[15]= “mawar”;
int panjang;
Maka pernyataan yang menggunakan strlen :
panjang = strlen(bunga);
akan memberikan panjang string yang tersimpan pada variabel
bunga ke panjang.
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
char
bunga[15]=”mawar”;
char
kosong[23]=””
clrscr(); //hapus layar
cout<<strlen(bunga)<<endl;
cout<<strlen(kosong)<<endl;
}
|
Fungsi
strlwr( ) dan strupr
Jika isi semua huruf kapital pada suatu string dinginkan
untuk diubah menjadi huruf kapital, hal ini dapat dilakukan melalui fungsi
strlwr(). Misalnya, didefinisikan :
char st[ ]=”AbCdEfGeHjKl”;
Maka st akan berisi : “abcdefgehjki”;
Sedangkan fungsi strupr() kebalikan dari fungsi strlwr().
Kedua fungsi di atas sama seperti tolower dan toupper.
Contoh program untuk memperlihatkan efek strlwr() dan
strupr() :
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
char st[
]=”AbCdEfGhIjKl”;
clrscr();
//hapus layar
cout<<”Isi
St mula-mula:”<<st<<endl;
strlwr(st);
cout<<”Isi
setelah dikonversi strlwr: “<<endl;
cout<<st<<endl;
strupr(st);
cout<<”Isi
setelah dikonversi strupr: “<<endl;
cout<<st<<endl;
}
|
Untuk
melakukan konversi dari suatu string ke bilangan, dapat menggunakan sejumlah
fungsi bawahan. Fungsi-fungsi yang tersedia dapat dilihat pada tabel.
Fungsi
|
Prototipe
|
Keterangan
|
atoi
|
Stdlib.h
|
Mengkonversi string argumen menjadi nilai bertipe int
|
atof
|
Stdlib.h
|
Mengkonversi string argumen menjadi nilai bertipe float
|
atol
|
Stdlib.h
|
Mengkonversi string argumen menjadi nilai bertipe long int
|
atold
|
Stdlib.h
|
Mengkonversi string argumen menjadi nilai bertipe long doubel
|
Beberapa
contoh hasil pengonversian string ke bilangan :
§ atof(“+2.1E+02”) = 210
§ atof(“+2.”) = 2
§ atof(“2abc”) = 2
§ atof(“
20.1”) = 20
§ atoi(“+2.1E+02”) = 2
§ atoi(“+2.”) = 2
§ atoi(“2abc”) = 2
§ atoi(“
20.1”) = 20
§ atol(“+2.1E+02”) = 2
§ atol(“+2.”) = 2
§ atol(“2abc”) = 2
§ atol(“ 2000000000”) =
2000000000
Adapun
fungsi yang berguna untuk mengubah suatu
nilai bilangan menjadi suatu string diantaranya ditunjukan pada tabel di bawah
Fungsi
|
Prototipe
|
Keterangan
|
itoa
|
Stdlib.h
|
Mengkonversi int argumen menjadi nilai bertipe string
|
ltoa
|
Stdlib.h
|
Mengkonversi long int argumen menjadi nilai bertipe string
|
ultoa
|
Stdlib.h
|
Mengkonversi unsigned long argumen menjadi nilai bertipe
string
|
Ketiga
fungsi yang tercantum pada tabel di atas mempunyai tiga buah argumen.
1. Argumen
pertama berupa nilai yang akan dikonversi ke string
2. Argumen
kedua berupa variabel penerima string hasil konversi
3. Argumen
ketiga berupa basis bilangan yang digunakan. Bisa diisi dengan nilai antara 2
sampai dengan 36.
Misalnya,
apabila hasil didefinisikan sebagai berikut :
char hasil[24];
int
nilai= 2345;
Pernyataan :
itoa(nilai,hasil,10);
membuat
hasil berisi “2345”;
0 Response to "Contoh penggunaan String Pemrograman C++"
Posting Komentar