string pada C++ : penjelasan dan contoh program

Assalamu'alaikum...
Dengan menggunakan string, pemrogram dapat menampilkan pesan kesalahan, memberitahu format masukan yang harus di input oleh pengguna atau memberikan informasi pada layar dengan mudah.

Seperti halnya tipe data yang lain, string juga dapat berupa konstanta atau variabel. Konstanta string sudah biasa digunakan pada postingan sebelum-sebelumnya. Misalnya : 

          cout<<"C++";

dalam pernyataan diatas terdapat konstanta string "C++". 

Suatu konstanta ditulis dengan awalan dan akhiran petik ganda ( " ). Contohnya "C++", dalam memori konstanta string disusun berurutan. Setelah karakter terakhir ada karakter null (karakter dengan ascii sama dengan nol dengan simbol '\0', yaitu dengan tanda \ diikuti dengan nol). Perhatikan gambar berikut :

Gambar 1. konstanta string didalam memori

String


1.Variabel String

Variabel string adalah variabel yang menampung string. Misalnya :

          char tulisan[15];
merupakan pernyataan untuk mendefinisikan variabel string dengan panjang maksimal 15 karakter termasuk karakter NULL. Pernyataan diatas tidak lain adalah untuk mendefinisikan array bertipe karakter.

Masukan Data ke string

Setelah variabel didefinisikan barulah bisa mengisikan data kevariabel tersebut. Pemasukan data menggunakan cin.

Contoh program :

#include<iostream>
using namespace std;

int main()
{
          char tulisan[15];
          cout<<"Masukan kata : ";
          cin>>tulisan;
          cout<<"Kata yang anda masukan : "<<tulisan<<endl;
}

Hasil eksekusi program :


                                   eksekusi 1

cin hanya bisa memasukan 1 kata. Coba perhatikan hasil eksekusi 2 berikut :

                                   eksekusi 2

Ternyata karakter setelah karakter spasi tidak bisa ditampung pada variabel tulisan. Ini dikarenakan operator << pada cin hanya bisa membaca masukan hingga spasi, tab atau enter.

Untuk mengatasi hal tersebut, sobat bisa menggunaka fungsi anggota get() pada obyek cin (cin.get()). 

Perhatikan contoh program berikut :

#include<iostream>
using namespace std;

int main()
{
          char tulisan[15];
          cout<<"Masukan kata : ";
          cin.get(tulisan, sizeof(tulisan));
          cout<<"Kata yang anda masukan : "<<tulisan<<endl;
}

Hasil eksekusi program :

                                   
Penulisan 

        cin.get(tulisan, sizeof(tulisan)); 

bisa juga menggunakan format

        cin.get(tulisan, 15);

2. Fungsi getline()

Masalah pada penggunaan cin.get() timbuk ketika digunakan dua kali, seperti pada program berikut :

#include<iostream>
using namespace std;


int main()
{

          char nama[15], alamat[15];


          cout<<"Masukan data anda"<<endl;
          cout<<"Nama : "; cin.get(nama, sizeof(nama));
          cout<<"Alamat : "; cin.get(alamat,15);
       
          cout<<"Nama : "<<nama<<endl;   
          cout<<"Alamat : "<<alamat<<endl;
}

Hasil eksekusi program :


Ternyata program tersebut, pengguna tidak dapat mengisi alamat. Hal ini dikarenakan get() yang pertama tidak membuang kode newline. Sehingga get() berikutnya tidak mengabaikan spasi, tab atau newline maka get() kedua tidak berfungsi sebagaimana mestinya.

Untuk mengatasi hal tersebut, sobat bisa menggunakan fungsi getline(). karena getline() mampu membuang sisa data yang tidak dibaca, termasuk newline tersebut.

Contoh program :

#include<iostream>
using namespace std;

int main()
{

          char nama[15], alamat[15];

          cout<<"Masukan data anda"<<endl;
          cout<<"Nama : "; cin.getline(nama, sizeof(nama));
          cout<<"Alamat : "; cin.getline(alamat,15);
       
          cout<<"Nama : "<<nama<<endl;   
          cout<<"Alamat : "<<alamat<<endl;
}


Hasil eksekusi program :


Sekarang alamat bisa dibaca. Setelah saya coba ternyata selain mengganti fungsi get() dengan getline() juga bisa dengan hanya menambahkan fungsi ignore() (cin.ignore()). Perhatikan proram berikut :


#include<iostream>
using namespace std;

int main()
{

          char nama[15], alamat[15];

          cout<<"Masukan data anda"<<endl;
          cout<<"Nama : "; cin.get(nama, sizeof(nama));
          cin.ignore(); //penambahan fungsi ignore()
          cout<<"Alamat : "; cin.get(alamat,15);
       
          cout<<"Nama : "<<nama<<endl;   
          cout<<"Alamat : "<<alamat<<endl;
}

Hasil eksekusi program :


Hasil eksekusi program diatas sama dengan hasil eksekusi program menggunakan getline(). Apa fungsi ignore() ? sekarang saya belum menemukan penjelasan yang pasti mengenai fungsi tersebut. Jika ada yang tahu boleh di comment below

Baca : apa saja yang bisa dilakukan dengan fungsi ignore ()


3. Inisialisasi String

Suatu variabel string dapat di beri nilai awal seperti halnya variabel lain.


        char tulisan[]="C++";


4. String sebagai Parameter Fungsi

String sebagai parameter fungsi sebenarnya sama seperti array sebagai parameter fungsi.

Contoh program :

#include<iostream>
using namespace std;

void cetak(char hasil[], int n);


int main()
{
         char tulisan[15]="Belajar C++";

         for(int i = 0; tulisan[i]!='\0'; i++)
         {
                  cetak(tulisan,i);
                  cout<<endl;
         }
}


void cetak(char hasil[],int n)
{
         for(int i = 0;i<=n;i++)
         {
                  cout<<hasil[i];
         }
}

Hasil eksekusi program :

Gambar 2 string sebagai parameter fungsi

Silahkan sobat coba sendiri untuk membuat hasil output yang berbeda seperti dimulai dari "Belajar C++", "Belajar C+" ... hingga tersisa huruf B saja. Atau sobat bisa membuat hasil eksekusi yang sama dengan kode yang berbeda.

Sekian dulu mengenai string dengan menggunakan tipe char berbentuk array. Untuk tipe data string bisa dibaca disini.

Untuk memperbanyak pengetahuan sobat mengenai string baca postingan berikut ini :
1. Menyalin string
2. Mengubah string menjadi huruf kapital atau huruf kecil dan beberapa fungsi makro
3. Fungsi operasi string : mengetahui panjang string, menggabung string, membandingkan string, mencari karakter pada string, mencari substring dan lainnya
4. Lebih lanjut penggunaan cin.ignore() : contoh program cin.ignore()

Semoga bermanfaat. Terimakasih

3 comments for "string pada C++ : penjelasan dan contoh program"

Terimakasih