Upload
muhammad-sukron
View
26
Download
0
Embed Size (px)
Citation preview
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++