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++. Tetapi sejauh ini, variable string belum diperkenalkan. 2 konstanta string Suatu konstanta string ditulis dengan awalan dan akhiran tanda petik ganda ( ). Misalnya : C++ Konstanta string seperti di atas 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 dengan nol). Bila suatu string hanya berisi karakter NULL, string disebut sebagai string kosong. 3 variabel string Variable string adalah variable yang dipakai untuk menyimpan string. Misalnya: Char teks [10];

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Merupakan pernyataan untuk mendefinisikan variable string dengan panjang maksimal 15 karakter ( sudah termasuk karakter NULL ).perlu diketahui, pernyataan di atas tidak lain adalah untuk mendefinisikan array bertipe karakter. 4 memasukkan data string dari keyboard Setelah suatu variable string didefinisikan, anda bisa mengisikan data ke variable tersebut. Pemasukan data dapat ditangani oleh cin,sebagaimana terlihat pada program berikut: Program 1: #include <iosream.h> #include <conio.h> Void main () { Char teks [13]; Cout << masukkan sebuah kata <<endl; Cin >> teks; Cout << yang anda masukkan : <<teks <<endl; } Program 2: #include <iostream.h> #include <conio.h> Void main () { Char teks [13]; Cout << masukkan sebuah atau beberapa kata <<endl; Cin.get (teks, 13); Cout << yang anda masukkan: <<teks; }

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Tampak, bahwa karakter yang terletak sesudah spasi juga ikut disimpan pada teks. Parameter 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 sengaja. Pada contoh di depan: Cin.get (teks,13) Bisa juga ditulis menjadi: Cin.get (teks,sizeof (teks) );

Fungsi anggota getline()


Suatu masalah akan timbul kalau cin.get() digunakan dua kali seperti pada program berikut: Program 3: #include <iostream.h> #include <conio.h> Void main () { Char nama [25]; Char alamat [35]; Cout <<nama anda: ; Cin.get (nama, sizeof (alamat) ); Cout<< Alamat : ; Cin.get (alamat, sizeof (alamat) ); Cout <<NAMA = <<nama <<endl; Cout <<ALAMAT= <<alamat << endl;}

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Pada contoh diatas cin.get() pertama digunakan untuk membaca nama dan yang kedua untuk membaca alamat. Ternyata program tidak memberikan kesempatan pemakai untuk mengisi alamt. Hal ini terjadi karena get() yang ertama tidak membuang kode newline (\n). oleh karena get() kedua menjadi tidak berfungsi sebagaimana mestinya. Cara untuk mengatasi kejadian 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(). Program 4: #include <iostream.h> #include <conio.h> Void main () { Char nama [25]; Char alamat [35]; Cout <<nama anda: ; Cin.getline (nama, sizeof (alamat) ); Cout<< Alamat : ; Cin.getline (alamat, sizeof (alamat) ); Cout <<NAMA = <<nama <<endl; Cout <<ALAMAT= <<alamat << endl; }

Menghitung jumlah karakter


Jika anda bermaksud menghitung jumlah karakter yang dimasukkan oleh pemakai, anda bisa menghitung sendiri dengan membuat pernyataan semacam berikut:

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Jumlah = 0; For (int I =0; teks[i]; i++) Jumlah++; Yang akan menghasilkan jumlah karakter yang terdapat pada teks. Perintah di atas, menghitung karakter dimulai posisi pertama (subscript bernilai 0)hingga teks [i] bernilai NULL. Program 5: #include <iostream.h> #include<conio.h> Void main() { Char teks[128]; Clrscr (); Cout <<masukkan string apa saja!<<endl; Cin.getline (teks,sizeof(teks)); Jumlah=0; For (int i=0 ; teks[i]; i++) Jumlah ++; Cout<<jumlah karakter=<<jumlah<<endl; }

MEMBACA SEJUMLAH BARIS


Fungsi anggota getline() juga bisa dipakai untuk membaca sejumlah baris hingga suatu karakter yang telah ditentukan dijumpai. Hal seperti ini dapat diperoleh dengan menyertakan argumen ketiga pada fungsi tsb.argumen ini berupa karakter pengakhir.contoh: Cin.getline(teks, sizeof(teks), $);

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Akan menyebabkan seluruh karakter yang terletak di sebelah tanda $ di letakkan ke teks.jika jumlah karaktermelebihi ukuran array teka,sisanya di abaikan. Program 6 #include<iostream.h> #include<conio.h> Void main () { Char teks[128]; Clrscr (); Cout<<masukkan data <<endl; Cout<<dan akhiri dgn $ dan enter<,endl; Cin.getline(teks, sizeof(teks),$); Cout<<\n yang anda ketikkan:<<endl; 5 Inisialisasi string Suatu variable string dapat diberi nilai awal seperti halnya variable lain.oleh karena variable string sebenarnya adalah jenis khusus dari array,maka inisialisasi dapat berupa seperti berikut: Char bahasa[]={ C ,+ ,+, \ 0); Tampak bahwa elemen terakhir pada pendefinisian diatas berupa karakter NULL. Bentuk pendefinisian dan inisialisasi seperti diatas dapat disederhanakan menjadi: Char bahasa[ ]=C++; Tampak lebih sederhana dan tidak perlu adanya pemberian karakter NULL secara eksplisit!
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

Program 7 #include<iostream.h> #include<conio.h> Void main () { Char bahasa [ ]=C++; Clrscr (); Cout<<bahasa<<endl; } // inisialisasi string

6 Menyalin String Menyalin string berbeda dengan menyalin bilangan .misalnya teks 1 dan teks 2 adalah variable string.anda tidak bisa memberikan pernyataan: Teks2 = teks1; Untuk menyalin string teks1 ke teks2. Program 8 #include <iostream.h> #include <conio.h> Void main () {
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

Char teks [ ]= C++ oke; Char data[125]; Clrscr(); For (int i=0;teks [i] ; i++) Data[i]=teks[i]; Data[i]=\ 0; \\ karakter NULL

Cout<<isi data : << data<< endl; Meskipun caranya sederhana ,C++ membrikan fungsi yang menyederhanakan tugas anda untuk menyalin file.fungsi tersebut bernama strcpy(). Program 9 #include<iostream.h> #include<conio.h> #include<string.h> Void main () { Char teks [ ]=C++ oke; Char data[125]; Clrscr (); Strcpy(data,teks); //menyalin isi teks ke data // untuk strcpy()

Cout<<isi data : <<data<<endl; }

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

7 fungsi dan makro berbasis karakter


Pada C++ terdapat sejumlah fungsi ataupun makro (semacam fungsi, tetapi di definisikan dengan #define )yang berbasis karakter. fungsi dan makro ini berguna untuk menganalisis karakter2 yang terdapat pada suatu string ataupun untuk melakukan konfersi (misalnya huruf kecil di ubah menjadi capital).

Makro keluarga is
Sejumlah makro dengan awalan is,mempunyai kaidah sebagai berikut: Int isalnum( int c); Int isalpha(int c); Int isascii(int c); Int iscntr(int c); Int isdigit(int c); Int isgraph(int c); Int islower(int c); Int isprint(int c); Int ispunct(int c); Int isspace(int c); Int isupper(int c); Int isxdigit(int c); Semua makro di atas memberikan nilai balik berupa benar (nilai tidak nol). Contoh berikut menggambarkan penggunaan isupper(),islower(),ispunct().

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Program 10 #include <iostream.h> #include <conio.h> #include <ctype.h> Void main () { Char st [128]; Int jum_kapital=0, Jum_kecil = 0; Jum_pengtuasi = 0; Jum_digit =0; Clrscr (); Cout << masukkan string apa saja <<endl; Cin.getline (st, sizeof (st) ); For (int I = 0; st[i]; i++) { If (islower (st [i] ) ) Jum_kecil++; If (isupper (st [i]) ) Jum_kapital++; If (ispunct (st [i]) ) Jum_pungtuasi++; If (isdigit (st [i]) ) Jum_digit++; } Cout << endl; Cout << JUMLAH <<endl; Cout << huruf capital : << jum_kapital<<endl;
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

Cout << huruf kecil: <<jum_kecil<<endl; Cout << digit : << jum_digit<<endl; Cout<< pungtuasi : << jum_pungtuasi,<endl; }

Pada contoh diatas, islower (st[i]) merupakan bentuk penyederhanaan dari penulisan: (st[i]>=a) && (st[i]<=z)

Makro-makro lain yang merupakan penyederhanaan dari bentuk semacam diatas. Toascii() Makro ini gerguna untuk mendapatkan nilai ASCII 7 bit (ASCII standar, 0 sampai dengan 127).makroini di definisikan pada file ctype.h. Contoh program #include <iostream.h> #include <conio.h> #include <ctype.h> Void main () { Clrscr (); For (int i=126;i<132;i++) Cout<< i= << toascii(<< i <<) = << toascii (i)<<end;

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Toupper () dan tolower () Fungsi 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. Adapun fungsi tolower() adalah kebalikan dari toupper (). Fungsi ini memberikan nilai balik: Berupa huruf kecil,kalau argument berisi huruf capital Berupa nilai seperti argument kalau argument tidak berupa huruf kecil

Kedua fungsi diatas memberikan nilai balik bertipe int dan memiliki prototype pada file ctype.h. berbagai fungsi untuk operasi string Compiler seperti Borland C++ maupun turbo C++ menyediakan sejumlah fungsi yang berkaitan dengan operasi string.

Mengetahui panjang string dengan strlen ()


Panjang suatu string dapat diketahui dengan mudah menggunakan fungsi strlen(). Misalnya saja didefinisikan : Char bunga [15]=mawar; Int panjang ; Maka pernyataan: Panjang =strlen (bunga); Akan memberikan panjang string yang tersimpan pada variable bunga ke panjang. Program 10 #include <iostream.h>
PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST Bahasa C++

#include<conio.h> #include<string.h> Void main () { Char bunga[15]=mawar; Char kosong[15]= ; Clrscr (); Cout << strlen(bunga) << endl; Cout << strlen (kosong) << endl; }

PUSAT PENGEMBANGAN BAHAN AJAR - UMB

Hendi Hermawan, ST Bahasa C++

Anda mungkin juga menyukai