DASAR STRING
Dalam C++ tidak ada tipe variabel elemen yang spesifik untuk menyimpan string. Untuk keperluan ini dapat digunakan array dengan tipe char dimana berisi elemen dengan tipe char. Perlu diingat bahwa tipe char digunakan untuk menyimpan 1 karakter karena itu array dari char digunakan untuk menyimpan string. 1. Konstanta String Suatu konstanta string ditulis dengan awalan dan akhiran tanda petik ganda ( “ ). Misalnya : “ C++ “ Konstanta string disimpan dalam memori secara berurutan, setiap karakter menempati memori sebesar 1 byte. Setelah karakter yang terakhir terdapat karakter NULL (karakter dengan nilai ASCII sama dengan nol atau disimbolkan dengan „\0‟, yaitu tanda \ diikuti nol). Bila suatu string hanya berisi karakter NULL, string disebut sebagai string kosong. 2. Variabel String Variabel string adalah variabel yang dipakai untuk menyimpan string. Misalnya : char teks[10]; merupakan pernyataan untuk mendefinisikan variabel string dengan panjang maksimal 15 karakter (sudah termasuk karakter NULL).
3. Inisialisasi string Sama halnya seperti array-array sebelumnya, inisialisasi pada string adalah: char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' }; Contoh diatas, merupakan inisialisasi 6 buah elemen bertipe char, yaitu Hello dan karakter null '\0'. Untuk menentukan nilai konstan, pada string digunakan tanda kutip ganda ("), sedangkan untuk karakter kutip tunggal ('). String yang diapit oleh kutip ganda sudah mengandung karakter Null pada akhir string, contoh
:
char mystring [] = { 'H', 'e', 'l', 'l', 'o', '\0' }; char mystring [] = "Hello";
Contoh di atas merupakan deklarasi array mystring yang berisi 6 elemen.
4. Pemberian nilai pada string
Untuk array dengan tipe char dapat dituliskan: mystring[0] mystring[1] mystring[2] mystring[3] mystring[4] mystring[5]
= = = = = =
'H'; 'e'; 'l'; 'l'; 'o'; '\0';
Cara diatas sangat tidak praktis. Umumnya untuk pemberian nilai pada array bertipe char digunakan fungsi strcpy. strcpy (string copy) mendefinisikan cstring (string.h) library dan dapat dipanggil dengan cara : strcpy (string1, string2);
instruksi diatas menyebabkan isi dari string2 di-copy ke string1. String2 dapat berupa array, pointer, atau konstanta string. Contoh :
Perhatikan, header<string.h> harus disertakan agar bisa menggunakan fungsi strcpy. Bisa juga menggunakan fungsi sederhana seperti setstring, dengan operasi yang sama seperti strcpy. Contoh :
Metode lain yang dapat digunakan untuk inisialisasi nilai yaitu input stream (cin). Dalam kasus ini, nilai string ditentukan oleh user saat eksekusi program. Ketika menggunakan cin, biasanya digunakan metode getline, Pemanggilannya adalah: cin.getline ( char buffer[], int length, char delimiter = ' \n');
dimana, buffer adalah alamat untuk menyimpan input, length adalah maksimum panjang buffer,dan delimiter adalah karakter yang digunakan untuk menentukan input akhir, dengan default – atau dengan ('\n'). Contoh :
Perhatikan kedua pemanggilan cin.getline, menggunakan identifier yang sama (mybuffer). Sama halnya seperti penggunaan operator extraction, sehingga dapat dituliskan : cin >> mybuffer;
Instruksi diatas dapat berjalan, hanya saja mempunyai keterbatasan bila dibandingkan dengan cin.getline, diantaranya
:
Dapat menerima 1 kata saja (bukan kalimat lengkap).
Tidak diperkenankan untuk memberikan ukuran buffer. Akan menyebabkan program tidak stabil jika user meng-input lebih besar dari kapasitas array yang ada.
5. Memasukan Data String Dari Keyboard Setelah suatu variabel string didefinisikan, bisa mengisikan data ke variabel tersebut. Pemasukkan data dapat ditangani oleh cin.
Contoh program :
Pada contoh diatas bila Anda memasukkan sebuah kata seperti : “Halo, Kawan”. Maka kata setelah spasi tidak akan terbaca, untuk mengatasi hal ini anda dapat menggunakan fungsi anggota get() pada obyek cin (cin.get()). Seperti contoh program berikut :
6. Fungsi dan Makro Berbasis Karakter Fungsi Makro berguna untuk menganalisis karakter-karakter yang terdapat pada suatu string ataupun untuk melakukan konversi (misalnya huruf kecil menjadi huruf kapital). Makro keluarga is... Sejumlah makro dengan awalan is, adalah sebagai berikut : - isalnum()
: karakter alphanumeris (digit, huruf kecil atau huruf kapital)
- asalpha()
: karakter alphabetis ( huruf kecil atau huruf kapital)
- isascii()
: karakter ASCII standar
- iscntrl()
: karakter kontrol
- isdigit()
: karakter digit (0 sampai dengan 9)
- isgraph()
: karakter yang dapat ditampilkan tetapi spasi tidak
- islower()
: huruf kecil (a sampai z)
- isprint()
: karakter yang dapat ditampilkan termasuk spasi
- ispunct()
: tanda pungtuasi ( seperti ! ataupun ?)
- isupper()
: huruf kapital ( A sampai Z)
- isxdigit() : digit heksadesimal ( 0 samapi 9, Asamapai F, a sampai f)
Contoh program :
7. Konversi String ke Angka atau Sebaliknya Untuk melakukan konversi string ke bilangan, Anda dapat menggunakan sejumlah fungsi bawaan. Fungsi yang tersedia adalah sebagai berikut : Fungsi atio()
Prototipe stdlib.h
Keterangan 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 double (hanya terdapat dalam borland C++)
Adapun fungsi untuk bilangan ke string adalah sebagai berikut : Fungsi Itoa()
Prototipe stdlib.h
Keterangan Untuk mengkonversi suatu bilangan bertipe int menjadi string
Ltoa()
stdlib.h
Untuk mengkonversi suatu bilangan bertipe long int menjadi string
ultoa()
stdlib.h
Untuk mengkonversi suatu bilangan bertipe unsigned long int menjadi string
8. String sebagai Parameter Fungsi String sebagai parameter fungsi pada dasarnya sama dengan array sebagai parameter fungsi. Contoh program :
Dalam program diatas argumen fungsi ditulis dengan bentuk seperti hasil[] pada pendefinisian fungsi. Tetapi hal ini tidaklah umum sebagai pengantinya argumen string dinyatakan dengan pointer yang menunjuk ke tipe char.