Dalam kehidupan sehari-hari, secara tidak sadar kita telah banyak melakukan sesuatu yang berkaitan dengan manipulasi teks.
Apa yang dimaksud dengan manipulasi..??
Manipulasi merupakan suatu tindakan untuk memodifikasi keadaan awal suatu objek menjadi keadaan/kondisi yang diinginkan.
Dalam materi kali ini, kita akan membahas mengenai manipulasi data string / teks.
Manipulasi String merupakan tindakan untuk mengubah suatu format data string dari satu bentuk kebentuk yang lain. Seperti menyalin, memotong, mengganti tampilan, menambahkan atau menghapus data String.
Penerapan manipulasi teks yang sering kita jumpai dalam kehidupan sehari-hari yaitu:
Misal jika kita menuliskan sesuatu dikolom komentar, terdapat tulisan 104/360 karakter, yang artinya karakter yang kita tuliskan dikolom komentar tersebut sebanyak 104 karakter dari maksimum inputan sebanyak 360 karakter. Artinya secara otomatis program telah menghitung banyaknya karakter yang kita tuliskan tadi.
Contoh lagi, misal seorang mahasiswa kesulitan merangkai kata dalam mengerjakan tugas atau laporan, iseng-iseng searching di google, kebetulan dapet baceman yang pas, langsung aja tuh dicopy paste tanpa mencantumkan sumbernya.. 😔
Dua contoh diatas (penghitungan karakter & copy paste) merupakan contoh penerapan manipulasi teks/data string didalam pemrograman.
Untuk keperluan manipulasi data string, bahasa C telah menyediakan berbagai macam fungsi standar.
Diantaranya yaitu:
strcpy()
strlen()
strcat()
strrev()
strcmp()
strcmpi()
- dll.
dan lain-lain sebetulnya masih banyak lagi, namun yang akan kita bahas merupakan fungsi yang sering digunakan didalam bahasa C ini.
Fungsi-fungsi diatas sudah didefinisikan oleh bahasa pemrograman (built-in function) dan dapat diakses dengan mengimpor file header <string.h>
.
1. Fungsi strcpy()
Fungsi strcpy()
(string copy) merupakan fungsi yang digunakan untuk menyalin data string dari variabel asal menuju variabel tujuan.
Fungsi strcpy()
ini biasa digunakan untuk mengcopy paste data string.
Berikut merupakan syntax penulisan fungsi strcpy()
didalam program.
strcpy(stringTujuan, stringSumber);
#include <stdio.h> #include <string.h> // File Header Fungsi built-in function String
int main(){ char string1[] = "Hello World!"; char string2[20]; strcpy(string2, string1); // Memanggil fungsi strcpy() untuk menyalin data string printf("String Sumber : %s\n", string1); printf("String Tujuan : %s\n", string2); return 0; }
Pada saat kita menyalin data string ke variabel tujuan, pastikan bahwa variabel tujuan memiliki ukuran yang cukup untuk menampung data string yang disalin tadi.
Dari contoh program diatas, maka akan menghasilkan output
2. Fungsi strlen()
Fungsi strlen()
(string length) merupakan fungsi yang digunakan untuk menghitung banyaknya jumlah karakter didalam data string.
Banyaknya karakter yang ditampilkan oleh fungsi strlen()
ini tidak termasuk karakter NULL (\0
) (tidak ikut dihitung).
Berikut merupakan syntax penulisan fungsi strlen()
didalam program.
strlen(varString);
#include <stdio.h> #include <string.h>
int main(){ char kalimat[20]; printf("Masukkan sebuah kalimat : "); gets(kalimat); printf("Kalimat yang anda masukkan memuat %d karakter \n", strlen(kalimat)); return 0; }
Hasilnya.
18 karakter diatas termasuk juga karakter white space / spasi.
3. Fungsi strcat()
Fungsi strcat()
(string concatenate) merupakan fungsi yang digunakan untuk menggabungkan data string dari dua variabel yang berbeda.
Syarat untuk melakukan manipulasi string ini yaitu harus ada dua buah variabel string yang akan digabungkan.
Tidak seperti bahasa pemrograman lain, penggabungan data string dapat dilakukan dengan tanda +
. Didalam bahasa C ini, tanda +
hanya digunakan untuk operasi aritamtika.
Berikut merupakan syntax penulisan fungsi strcat()
didalam program.
strcat(stringAwal, stringAkhir);
#include <stdio.h> #include <string.h>
int main(){ char firstName[10]; char lastName[10]; printf("Masukkan nama depan : "); gets(firstName); printf("Masukkan nama belakang : "); gets(lastName); printf("Nama Anda : %s\n", strcat(firstName, lastName)); return 0; }
Hasilnya.
4. Fungsi strrev()
Fungsi strrev()
(string reverse) merupakan fungsi yang digunakan untuk membalik nilai data string.
Misal : "makan nasi"
menjadi "isan nakam"
Program akan membaca seluruh karakter dari data string, karakter yang berada pada Indeks terakhir akan menjadi indeks pertama dan karakter yang berada pada Indeks pertama akan menjadi indeks terakhir.
Berikut merupakan syntax penulisan fungsi strrev()
didalam program.
strrev(varString);
#include <stdio.h> #include <string.h>
int main(){ char kalimat[20]; printf("Masukkan sebuah kalimat : "); gets(kalimat); printf("Jika dibalik menjadi : %s\n", strrev(kalimat)); return 0; }
Hasilnya.
5. Fungsi strcmp()
Fungsi strcmp()
(string compare) merupakan fungsi yang digunakan untuk membandingkan nilai data string dari dua buah varibel yang berbeda.
Nilai yang dibandingkan merupakan nilai ASCII-nya.
Data string yang dibandingkan ini bersifat case sensitive, artinya dua yang karakter yang sama dengan kode ASCII yang berbeda, akan dianggap sebagai dua entitas(objek) yang berbeda.
'A'
dengan 'a'
merupakan dua karakter yang berbeda.
Misal :
str1="AAA"
(nilai ASCII=65+65+65=195)
dibandingkan dengan
str2="aaa"
(nilai ASCII=97+97+97=291)
Maka, nilai str2
lebih besar dari str1
.
Pembandingan tersebut dilakukan dengan membaca karakter mulai dari Indeks 0 hingga Indeks terakhir, Nilai ASCII dari tiap karakter tersebut dijumlahkan dan akan mendapatkan hasil totalnya.
Dari hasil perbandingan tersebut akan mendapat keluaran nilai:
- -1, jika
string1
kurang daristring2
- 0, jika
string1
sama denganstring2
- 1, jika
string1
lebih daristring2
Berikut merupakan syntax prnulisan fungsi strcmp()
didalam program.
strcmp(string1, string2);
#include <stdio.h> #include <string.h>
int main(){ char kata1[10]; char kata2[10]; char kata3[10]; printf("Masukkan kata I : "); gets(kata1); printf("Masukkan kata II : "); gets(kata2); printf("Masukkan kata III : "); gets(kata1); printf("Kata I banding Kata II = %d\n", strcmp(kata1, kata2)); printf("Kata I banding Kata III = %d\n", strcmp(kata1, kata3)); printf("Kata II banding Kata III = %d\n", strcmp(kata2, kata3)); return 0; }
Hasilnya.
6. Fungsi strcmpi()
Fungsi strcmpi()
(string compare ignore case) juga merupakan fungsi yang digunakan untuk membandingkan nilai data string dari dua varibel, sama halnya dengan fungsi strcmp()
.
Namun, data string yang dibandingkan bersifat non case sensitive / mengabaikan huruf besar dan kecil.
Artinya, dua karakter yang sama meskipun memiliki nilai ASCII yang berbeda, akan dianggap sebagai dua entitas/objek yang sama.
Misal 'A'
dengan 'a'
merupakan dua karakter yang sama.
Nilai keluaran dari fungsi strcmpi()
merupakan data bertipe int
.
Secara umum akan mengembalikan nilai sebagai berikut.
- -1, jika
string1
kurang daristring2
- 0, jika
string1
sama denganstring2
- 1, jika
string1
lebih daristring2
Tetapi, berbeda kompiler yang digunakan juga berbeda pula hasil yang ditampilkan.
Perhatikan Program berikut.
strcmpi(string1, string2);
#include <stdio.h> #include <string.h>
int main(){ char kata1[10]; char kata2[10]; char kata3[10]; printf("Masukkan kata I : "); gets(kata1); printf("Masukkan kata II : "); gets(kata2); printf("Masukkan kata III : "); gets(kata1); printf("Kata I banding Kata II = %d\n", strcmpi(kata1, kata2)); printf("Kata I banding Kata III = %d\n", strcmpi(kata1, kata3)); printf("Kata II banding Kata II = %d\n", strcmpi(kata2, kata3)); return 0; }
Output yang dihasilkan yaitu:
- <1, jika
string1
kurang daristring2
- 0, jika
string1
sama denganstring2
- >1, jika
string1
lebih daristring2
Itulah tadi penjelasan mengenai fungsi bawaan (built-in function) untuk memanipulasi data string pada pemrograman C.
Sebagai latihan, kerjakan soal berikut.
a. Definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi parameternya secara CASE SENSITIVE (misalnya : bandingstr1())
b. Pada fungsi main() terimalah input 2 buah string yang akan dibandingkan. Selanjutnya panggil fungsi bandingstr1() untuk membandingkan kedua string tsb dan tampilkan hasilnya di main()
a. Definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi parameternya secara NON CASE SENSITIVE (misalnya : bandingstr2())
b. Pada fungsi main() terimalah input 2 buah string yang akan dibandingkan. Selanjutnya panggil fungsi bandingstr2() untuk membandingkan kedua string tsb dan tampilkan hasilnya di main()
Post a Comment
Post a Comment