Anda di halaman 1dari 13

MODUL 10

DASAR STRING
1 pengertian string String sangat memudahkan tugas pemrogram.Dengan menggunakan string,pemrograman dapat menampilkan pesan kesalahan,menampilkan prompt bagi masukan dari keyboard ataupun memberikan informasi pada layer dengan mudah. Seperti halnya tipe data yang lain, string dapat berupa konstanta atau variable. Konstanta string sudah biasa anda sertakan pada program. Misalnya pada pernyataan: Cout << c++ << endl; Terdapat konstanta string c diperkenalkan. 2 konstanta string Suatu konstanta string ditulis dengan a#alan dan akhiran tanda petik ganda $ %. Misalnya : & ! !. Tetapi se"auh ini, variable string belum

Konstanta string seperti di atas disimpan dalam memori secara berurutan. Setiap karakter menempati memori sebesar ' byte.setelah karakter yang terakhir terdapat karakter ()** $karakter dengan nilai +S&,, sama dengan nol atau disimbolkan dengan -./0, yaitu tanda . diikuti dengan nol%. 1ila suatu string hanya berisi karakter ()**, string disebut sebagai string kosong. 3 aria!el string 2ariable string adalah variable yang dipakai untuk menyimpan string. Misalnya: C"ar teks #10$;

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Merupakan pernyataan untuk mendefinisikan variable string dengan pan"ang maksimal '3 karakter $ sudah termasuk karakter ()** %.perlu diketahui, pernyataan di atas tidak lain adalah untuk mendefinisikan array bertipe karakter. % &e&asukkan data string dari ke'!oard Setelah suatu variable string didefinisikan, anda bisa mengisikan data ke variable tersebut. 4emasukan data dapat ditangani oleh cin,sebagaimana terlihat pada program berikut: 4rogram ': 5include 6iosream.h7 5include 6conio.h7 2oid main $% 8 &har teks 9':;< &out 66 masukkan sebuah kata 66endl< &in 77 teks< &out 66 yang anda masukkan : 66teks 66endl< = 4rogram >: 5include 6iostream.h7 5include 6conio.h7 2oid main $% 8 &har teks 9':;< &out 66 masukkan sebuah atau beberapa kata! 66endl< &in.get $teks, ':%< &out 66 yang anda masukkan: 66teks< =

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Tampak, bah#a karakter yang terletak sesudah spasi "uga ikut disimpan pada teks. 4arameter kedua dari fungsi anggota get() harus diisi dengan nilai yang tidak melebihi ukuran array pada argumen pertama< sebab bisamenimbulkan terubahnya variable yang terletak sesudah array,tanpa senga"a. 4ada contoh di depan: &in.get $teks,':% 1isa "uga ditulis men"adi: &in.get $teks,si?eof $teks% %<

*ungsi anggota getline()


Suatu masalah akan timbul kalau cin+get() digunakan dua kali seperti pada program berikut: 4rogram :: 5include 6iostream.h7 5include 6conio.h7 2oid main $% 8 &har nama 9>3;< &har alamat 9:3;< &out 66!nama anda: < &in.get $nama, si?eof $alamat% %< &out66 +lamat : < &in.get $alamat, si?eof $alamat% %< &out 66!(+M+ @ 66nama 66endl< &out 66!+*+M+T@ 66alamat 66 endl<=

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

4ada contoh diatas cin+get() pertama digunakan untuk membaca nama dan yang kedua untuk membaca alamat. Ternyata program tidak memberikan kesempatan pemakai untuk mengisi alamt. Aal ini ter"adi karena get() yang ertama tidak membuang kode newline $.n%. oleh karena get() kedua men"adi tidak berfungsi sebagaimana mestinya. &ara untuk mengatasi ke"adian ini yaitu dengan menggunakan fungsi anggota getline(),karena fungsi ini dapat membuang sisa data yang tidak dibaca, termasuk newline itu sendiri.pada contoh berikut,get() diganti dengan getline()+ 4rogram B: 5include 6iostream.h7 5include 6conio.h7 2oid main $% 8 &har nama 9>3;< &har alamat 9:3;< &out 66!nama anda: < &in.getline $nama, si?eof $alamat% %< &out66 +lamat : < &in.getline $alamat, si?eof $alamat% %< &out 66!(+M+ @ 66nama 66endl< &out 66!+*+M+T@ 66alamat 66 endl< =

Meng"itung -u&la" karakter


Cika anda bermaksud menghitung "umlah karakter yang dimasukkan oleh pemakai, anda bisa menghitung sendiri dengan membuat pernyataan semacam berikut:

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Cumlah @ /< Dor $int , @/< teks9i;< i Cumlah < %

Eang akan menghasilkan "umlah karakter yang terdapat pada teks. 4erintah di atas, menghitung karakter dimulai posisi pertama $subscript bernilai /%hingga teks 9i; bernilai ()**. 4rogram 3: 5include 6iostream.h7 5include6conio.h7 2oid main$% 8 &har teks9'>F;< &lrscr $%< &out 66!masukkan string apa sa"aG!66endl< &in.getline $teks,si?eof$teks%%< Cumlah@/< Dor $int i@/ < teks9i;< i Cumlah = < %

&out66!"umlah karakter@!66"umlah66endl<

M.M/0C0 1.2UML03 /0451


Dungsi anggota getline() "uga bisa dipakai untuk membaca se"umlah baris hingga suatu karakter yang telah ditentukan di"umpai. Aal seperti ini dapat diperoleh dengan menyertakan argumen ketiga pada fungsi tsb.argumen ini berupa karakter pengakhir.contoh: &in.getline$teks, si?eof$teks%, -H0%<

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

+kan menyebabkan seluruh karakter yang terletak di sebelah tanda H di letakkan ke teks."ika "umlah karaktermelebihi ukuran array teka,sisanya di abaikan. 4rogram I 5include6iostream.h7 5include6conio.h7 2oid main $% 8 &har teks9'>F;< &lrscr $%< &out66!masukkan data 66endl< &out66!dan akhiri dgn H dan enter!6,endl< &in.getline$teks, si?eof$teks%,0H0%< &out66!.n yang anda ketikkan:!66endl< 6 5nisialisasi string Suatu variable string dapat diberi nilai a#al seperti halnya variable lain.oleh karena variable string sebenarnya adalah "enis khusus dari array,maka inisialisasi dapat berupa seperti berikut: &har bahasa9;@8 -&0 ,0 0 ,0 0, - . /0%< Tampak bah#a elemen terakhir pada pendefinisian diatas berupa karakter ()**. 1entuk pendefinisian dan inisialisasi seperti diatas dapat disederhanakan men"adi: &har bahasa9 ;@!& !<

Tampak lebih sederhana dan tidak perlu adanya pemberian karakter ()** secara eksplisitG
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

4rogram J 5include6iostream.h7 5include6conio.h7 2oid main $% 8 &har bahasa 9 ;@!& &lrscr $%< &out66bahasa66endl< = !< KK inisialisasi string

7 Men'alin 1tring Menyalin string berbeda dengan menyalin bilangan .misalnya teks ' dan teks > adalah variable string.anda tidak bisa memberikan pernyataan: Teks> @ teks'< )ntuk menyalin string teks' ke teks>. 4rogram F 5include 6iostream.h7 5include 6conio.h7 2oid main $% 8
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

&har teks 9 ;@ !& &har data9'>3;< &lrscr$%<

oke!<

Dor $int i@/<teks 9i; < i Data9i;@teks9i;< Data9i;@0. /0<

.. karakter ()**

&out66!isi data : 66 data66 endl< Meskipun caranya sederhana ,& membrikan fungsi yang menyederhanakan

tugas anda untuk menyalin file.fungsi tersebut bernama strcp'(). 4rogram L 5include6iostream.h7 5include6conio.h7 5include6string.h7 2oid main $% 8 &har teks 9 ;@!& &har data9'>3;< &lrscr $%< Strcpy$data,teks%< KKmenyalin isi teks ke data oke!< KK untuk strcpy$%

&out66!isi data : 66data66endl< =

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

8 9ungsi dan &akro !er!asis karakter


4ada & terdapat se"umlah fungsi ataupun makro $semacam fungsi, tetapi di

definisikan dengan :de9ine %yang berbasis karakter. fungsi dan makro ini berguna untuk menganalisis karakter> yang terdapat pada suatu string ataupun untuk melakukan konfersi $misalnya huruf kecil di ubah men"adi capital%.

Makro keluarga is;;


Se"umlah makro dengan a#alan is,mempunyai kaidah sebagai berikut: ,nt isalnum$ int c%< ,nt isalpha$int c%< ,nt isascii$int c%< ,nt iscntr$int c%< ,nt isdigit$int c%< ,nt isgraph$int c%< ,nt islo#er$int c%< ,nt isprint$int c%< ,nt ispunct$int c%< ,nt isspace$int c%< ,nt isupper$int c%< ,nt isMdigit$int c%< Semua makro di atas memberikan nilai balik berupa benar $nilai tidak nol%. &ontoh berikut menggambarkan penggunaan isupper(),islo<er(),ispunct()+

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

4rogram '/ 5include 6iostream.h7 5include 6conio.h7 5include 6ctype.h7 2oid main $% 8 &har st 9'>F;< ,nt "umNkapital@/, CumNkecil @ /< CumNpengtuasi @ /< CumNdigit @/< &lrscr $%< &out 66 masukkan string apa sa"a! 66endl< &in.getline $st, si?eof $st% %< Dor $int , @ /< st9i;< i 8 ,f $islo#er $st 9i; % % CumNkecil CumNkapital < < < ,f $isupper $st 9i;% % ,f $ispunct $st 9i;% % CumNpungtuasi ,f $isdigit $st 9i;% % CumNdigit = &out 66 endl< &out 66 C)M*+A! 66endl< &out 66 huruf capital : 66 "umNkapital66endl<
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

<

&out 66 huruf kecil: 66"umNkecil66endl< &out 66 digit : 66 "umNdigit66endl< &out66 pungtuasi : 66 "umNpungtuasi,6endl< =

4ada contoh diatas, islo#er $st9i;% merupakan bentuk penyederhanaan dari penulisan: $st9i;7@0a0% OO $st9i;6@0?0%

MakroPmakro lain yang merupakan penyederhanaan dari bentuk semacam diatas. =oascii() Makro ini gerguna untuk mendapatkan nilai +S&,, J bit $+S&,, standar, / sampai dengan '>J%.makroini di definisikan pada file ctype.h. &ontoh program 5include 6iostream.h7 5include 6conio.h7 5include 6ctype.h7 2oid main $% 8 &lrscr $%< Dor $int i@'>I<i6':><i &out66 i@! 66 toascii$66 i 66!% @ ! 66 toascii $i%66end< %

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

=oupper () dan tolo<er () Dungsi ini berguna untuk memperoleh huruf capital dari suatu huruf kecil.nilai balik dari fungsi ini akan berupa seperti argumennya kalau argument tidak berupa huruf kecil. +dapun fungsi tolo#er$% adalah kebalikan dari toupper $%. Dungsi ini memberikan nilai balik: 1erupa huruf kecil,kalau argument berisi huruf capital 1erupa nilai seperti argument kalau argument tidak berupa huruf kecil

Kedua fungsi diatas memberikan nilai balik bertipe int dan memiliki prototype pada file ct'pe+". !er!agai 9ungsi untuk operasi string &ompiler seperti 1orland & maupun turbo & menyediakan se"umlah fungsi yang berkaitan dengan operasi string.

Mengeta"ui pan-ang string dengan strlen ()


4an"ang suatu string dapat diketahui dengan mudah menggunakan fungsi strlen$%. Misalnya sa"a didefinisikan : &har bunga 9'3;@!ma#ar!< ,nt pan"ang < Maka pernyataan: 4an"ang @strlen $bunga%< +kan memberikan pan"ang string yang tersimpan pada variable bunga ke pan"ang. 4rogram '/ 5include 6iostream.h7
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

5include6conio.h7 5include6string.h7 2oid main $% 8 &har bunga9'3;@!ma#ar!< &har kosong9'3;@! !< &lrscr $%< &out 66 strlen$bunga% 66 endl< &out 66 strlen $kosong% 66 endl< =

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Anda mungkin juga menyukai