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++

c++ (String) - Shared by Karyafikri.blogspot.com

Embed Size (px)

Citation preview

Page 1: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 1/13

MODUL 10

DASAR STRING

1 pengertian stringString 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++

Page 2: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 2/13

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++

Page 3: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 3/13

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++

Page 4: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 4/13

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++

Page 5: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 5/13

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++

Page 6: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 6/13

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++

Page 7: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 7/13

Program 7

#include<iostream.h>

#include<conio.h>

Void main ()

{

Char bahasa [ ]=”C++”; // inisialisasi string

Clrscr ();

Cout<<bahasa<<endl;

}

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++

Page 8: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 8/13

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> // untuk strcpy()

Void main ()

{

Char teks [ ]=”C++ oke”;

Char data[125];

Clrscr ();

Strcpy(data,teks); //menyalin isi teks ke data

Cout<<”isi data : “<<data<<endl;

}

PUSAT PENGEMBANGAN BAHAN AJAR - UMB Hendi Hermawan, ST

Bahasa C++

Page 9: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 9/13

7 fungsi dan makro berbasis karakter

Pada C++ terdapat sejumlah fungsi ataupun makro (semacam fungsi, tetapi didefinisikan 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++

Page 10: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 10/13

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++

Page 11: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 11/13

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++

Page 12: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 12/13

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 fungsistrlen().

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++

Page 13: c++ (String) - Shared by Karyafikri.blogspot.com

7/15/2019 c++ (String) - Shared by Karyafikri.blogspot.com

http://slidepdf.com/reader/full/c-string-shared-by-karyafikriblogspotcom 13/13

#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++