Character dan String
Halo semuanya, selamat datang kembali dalam tutorial pemrograman C++. Seperti biasa selalu ada yang baru dalam pemrograman C++ ini dan saya rasa kalian pasti ingin mengetahui kelanjutan tutorial kita dari yang sebelumnya. Oke, tutorial sebelumnya kita telah belajar mengenai Pointer dan Alokasi Memori Dinamik. Kali ini kita akan belajar tutorial baru yaitu Character dan String.
Tentunya kalian sudah tak asing lagi dengan kedua kata tersebut, karena kita pernah membahas sedikit mengenai Character dan String dalam pemrograman C++. Character adalah variabel yang berisi huruf karakter dari A-Z dan a-z, dan string adalah variabel yang berisi deretan dari karakter - karakter tersebut. Tentu saja kedua definisi tersebut benar dalam hal dasarnya, tetapi dalam tutorial ini kita akan ulas lebih mendalam lagi tentang kedua hal yang dasar ini. Mari kita mulai simak tutorial berikut.
Pendahuluan
Suatu variabel yang bertipe karakter (char) dalam C++ tentunya hanya dapat menyimpan sebuah karakter. Jarang sekali dalam hidup kita mendapatkan data yang hanya terdiri dari 1 karakter, maka dari itu untuk menyimpan deretan karakter digunakan struktur data String. Struktur data string sebenarnya adalah struktur data array yang komponennya berupa karakter. Struktur data string dalam C++ didefinisikan sebagai deretan karakter yang diakhiri dengan karakter null ('\0'). Penyimpanan karakter string dapat dilihat pada ilustrasi berikut:
Dapat dilihat pada Ilustrasi di atas bahwa ada 4 indeks array yang menyimpan deretan karakter dapat diketahui bahwa deretan karakter "C++" disimpan pada indeks array 0-2 karena setiap array dihitung mulai dari nol dan karakter "C++" terdiri dari 3 karakter maka karakter "C" menempati array 0, karakter "+" menempati indeks array 1 dan 2. Pada indeks array ke 3 ada karakter null.
Variabel string, seperti namanya, adalah variabel yang digunakan untuk menyimpan data bertipe string. Pendeklarasian variabel string pada compiler C++ mengikuti deklarasi untuk variabel array dengan bentuk umum sebagai berikut:
char nama_string[n];
Keterangan:
- char : tipe data
- nama_string : nama untuk variabel string (identifier)
- n : integer yang menunjukkan panjang string, termasuk karakter null.
Sebagai contoh kita akan gunakan Ilustrasi di atas:
Konstanta string "C++", panjangnya 3 karakter, maka deklarasi untuk menyimpan konstanta string tersebut adalah:
char kata[4];
Perhatikan, untuk menentukan panjang variabel string, selalu ditambah 1 karakter untuk menyimpan karakter null. Karena string sebenarnya adalah array, maka indeks string selalu dihitung mulai dari 0.
Menyimpan Data dalam Variabel String
Setelah suatu variabel dideklarasikan sebagai variabel string, maka variabel tersebut dapat dipakai untuk menyimpan data string. Karena string sebenarnya adalah array, maka data tidak dapat di-assign langsung ke variabel string. Ada beberapa cara untuk menyimpan data ke dalam variabel string yaitu:
1. Inisialisasi awal dari statement program sendiri, contoh:
2. Diinput dari keyboard:
a. Dengan instruksi cin:
Contoh penggunaan instruksi cin dapat dilihat pada gambar di bawah ini:
b. Dengan instruksi cin.get(nama_string, sizeof(nama_string))
Instruksi ini dapat menerima input spasi, tetapi hanya dapat menerima input sekali di seluruh program. Parameter sizeof menunjukkan berapa karakter yang dapat diinput termasuk karakter null. Dengan demikian panjang string yang dimasukkan dapat disesuaikan dengan panjang string ketika variabel dideklarasikan. Contoh program dapat dilihat berikut ini. Jika diperlukan kata sizeof dapat diganti dengan angka yang merupakan panjang karakter.
Dengan menggunakan instruksi cin.getline(nama_string, sizeof, pengakhir) Jika dalam program perlu lebih dari satu kali input, maka instruksi cin.get tidak dapat digunakan. Dalam hal ini harus digunakan instruksi cin.getline. Perhatikan contoh - contoh berikut:
Program di atas adalah program cin.get dengan 2 input. Seperti yang dikatakan sebelumnya program ini tidak dapat menerima lebih dari satu input. Sehingga saat program dijalankan akan menghasilkan seperti berikut:
Hasil program:
Seperti yang kita lihat, sekarang kita dapat memasukkan lebih dari 1 input dikarenakan ada kode cin.getline( ). Jadi, kita dapat simpulkan bahwa jika kita ingin memasukkan string yang lebih dari satu kata dengan spasi dan satu input maka kita gunakan cin.getline( ).
Hasilnya isi variabel str1 sama dengan str2. Sebagai contoh:
char coba[10];
strcpy(coba, “Ada apa?”);
Menghitung Panjang String
Yang dimaksud dengan panjang string adalah banyaknya karakter dalam satu string yang kita input (tidak termasuk karaker null), menghasilkan bilangan integer. Ada beberapa cara menghitung panjang string yaitu:
a. Menggunakan Kode Looping FOR
Kita dapat menghitung sebuah string dengan kode program dasar yang pernah kita pelajari yaitu looping for. Berikut contoh programnya:
b. Menggunakan Instruksi cin.gcount( ) - 1
Instruksi cin.gcount( ) - 1 juga sama seperti looping for di atas, menghitung panjang string secara berulang, tetapi kita tidak perlu lagi menulis panjang - panjang kode programnya. Cukup sertakan saja instruksi cin.gcount( ) - 1 maka string yang kita masukkan akan dihitung panjangnya. Coba lihat contoh program di bawah ini:
Dengan program di atas ketika di jalankan akan menghasilkan:
Dapat kita lihat hasil program di atas dengan instruksi cin.gcount( ) - 1, karakter pada string telah menghasilkan panjang karakter yang sama dengan looping for. Tetapi bagaimana jika instruksi untuk menghitung karakter hanya dengan cin.gcount( ) tanpa - 1? Program tidak akan error dan masih dapat dijalankan tetapi karakter null juga akan ikut terhitung sehingga panjang kata akan menjadi 12 karakter.
c. Menggunakan Library Function strlen(s)
Untuk Library Function, mari kita perhatikan dulu macam - macam Library Function yang akan kita gunakan nantinya pada program C++.
Library Function
Untuk memudahkan para programmer memproses tipe data karakter dan struktur data string, bahasa pemrograman C++ telah menyediakan berbagai macam fungsi library (Library Function) yang dapat diakses menggunakan header <ctype.h>, <string.h>, dan <cstdlib.h>.
Fungsi yang ada pada header <ctype.h> adalah fungsi untuk memanipulasi karakter. Contohnya adalah:
- islower(S) -> menghitung jumlah huruf kecil pada string S.
- isupper(S) -> menghitung jumlah huruf besar pada string S.
- ispunct(S) -> menghitung jumlah tanda baca pada string S.
- isalpha(S) -> menghasilkan nilai true (tidak nol) jika S adalah huruf atau nilai false (nol) jika S bukan huruf.
- isalnum(S) -> menghasilkan nilai true (tidak nol) jika S adalah alfanumerik (huruf atau angka) atau nilai false (nol) jika selain itu.
- isdigit(S) -> menghasilkan nilai true (tidak nol) jika S adalah angka digit (0 sampai 9) atau nilai false (nol) selain itu.
- isprint(S) -> menghasilkan nilai true (tidak nol) jika S adalah printable character (termasuk spasi) atau nilai false (nol) selain itu.
- isspace(S) -> menghasilkan nilai true (tidak nol) jika S adalah spasi. Yang dimaksud spasi adalah: spasi ‘ ‘ ; tab ‘\t’; baris baru ‘\n\’ ; tab vertikal ‘\v’. Selain itu menghasilkan false (angka nol).
Fungsi yang ada pada header file <string.h> adalah fungsi untuk memanipulasi string. Contohnya adalah:
- strlen(S) -> menghitung panjang string S, tidak termasuk karakter “\0”
- stcmp(S,T) -> membandingkan string S dengan T. Jika S == T, fungsi menghasilkan 0. Jika S > T , fungsi menghasilkan bilangan positif dan jika S < T, fungsi menghasilkan bilangan negatif.
- strcat(S,T) -> menyambungkan T ke belakang S (hasilnya S bertambah panjang)
- strcpy(S,T) -> mengkopi string T ke string S.
- strspn(S,T) -> menghasilkan panjang prefix S yang ada dalam string T
- strpbrk(S,T) -> menghasilkan pointer untuk keberadaan string T yang ditemukan pertama kali pada string S.
- strstr(S,T) -> mencari keberadaan string T di dalam string S.Hasilnya adalah posisi T di dalam S.
- strncat(S,T,n) -> menyambungkan n karakter pertama dari string T ke belakang string S
- strncpy(S,T,n) -> mengkopi n karakter pertama dari string T ke string S.
Fungsi yang ada pada header file <cstdlib.h> adalah fungsi untuk mengkonversi data dari tipe karakter atau string ke tipe numerik atau sebaliknya. Contohnya adalah:
- atoi(S) -> mengkonversi S menjadi data integer, contoh: num = atoi(“1234”)
- atol(S) -> mengkonversi S menjadi data long integer. Contoh: lnum = atol(“12345678”)
- atof(S) -> mengkonversi S menjadi data long integer. Contoh: fnum = atof(“123.45678”)
- itoa(num, S, base) -> mengkonversi num menjadi string S, hasil konversi berupa string yang dieksresikan dalam yang bentuk basis (base) 8, 10 atau 16. Contoh: num = itoa(1234, S, 10)
Keterangan:
- S: variabel string
- num: variabel integer
- lnum: variabel long integer
- fnum: variabel double (atau float)
Dapat disimpulkan pada tutorial ini bahwa selain kita membuat program untuk menyimpan variabel karakter, kita juga dapat bermain - main dengan kata dan kalimat yang kita tulis pada program C++ seperti menghitung jumlah karakter huruf besar kecil, tanda baca, dan spasi. Serta kita dapat memanipulasi kata - kata pada string menggunakan Library Function yang telah disediakan oleh C++ itu sendiri.
Oke, dengan begini kita telah selesai belajar tutorial mengenai Character dan String, bacalah kembali tutorialnya dan cobalah buat program - program sesuai yang telah diberikan dalam tutorial tersebut sebagai latihan. Terimakasih telah mengunjungi tutorial ini, Happy Learning dan sampai jumpa pada tutorial berikutnya.
Comments
Post a Comment