23 February, 2015

Fungsi strchr dan strrchr Bahasa C

Bahasa pemrograman C/C++ menyediakan fungsi strchr dan strrchr yang dapat digunakan untuk melakukan pencarian karakter tertentu di dalam suatu kalimat atau sederetan karakter (string). Kedua fungsi ini bisa dikatakan sama atau serupa jika dilihat dari segi kegunaannya, tetapi memiliki perbedaan yang sangat jelas dari sisi nilai yang dikembalikan oleh masing-masing fungsi. Penjelasan singkat tersebut, akan dijabarkan pada tiap-tiap sub pembahasan di bawah ini.

Fungsi strchr Bahasa C

Sebelum bekerja dengan fungsi strchr dalam melakukan pencarian karakter pada sebuah kalimat, mengetahui dan memahami bentuk dasar penulisan fungsi ini merupakan hal yang mutlak dilakukan. Untuk itu, mari perhatikan dan pahami bentuk dasar dari penulisan fungsi strchr di bawah ini. char * strchr ( const char *, int );
Penjelasan penulisan fungsi "strchr"
  1. const char * Sebuah array yang menjadi target pencarian terhadap karakter yang telah dispesifikasikan
  2. int Sebuah karakter yang menjadi acuan dalam pencarian terhadap array (target)

Lalu, bagaimanakah cara kerja dari fungsi strchr ini? Untuk mempermudah dan agar lebih jelas, mari kita lihat contoh implementasi dari penggunaan fungsi strchr ini ke dalam bahasa c.
Berdasarkan kode program bahasa c di atas, variabel kalimat digunakan sebagai parameter pertama dan variabel cari digunakan sebagai parameter kedua terhadap fungsi strchr. Ketika fungsi strchr ini dipanggil, maka fungsi ini akan mengambil nilai yang disimpan oleh variabel cari ('m') dan menjadikannya sebagai acuan data yang ingin dicari. Kemudian, fungsi ini akan memulai mencari dan memeriksa apakah karakter tersebut terdapat dalam variabel kalimat. Pencarian karakter terhadap variabel kalimat dilakukan dengan mencocokkan ke setiap karakter yang ada pada array. Pencarian dimulai dari posisi awal karakter pertama pada array. Ketika karakter yang hendak dicari ditemukan, maka fungsi ini akan mengembalikan alamat dimana si karakter disimpan dalam memori, dan sesegera mungkin, fungsi ini berhenti melakukan tugasnya. Untuk itulah mengapa variabel pointer pch dideklarasikan dan dibutuhkan.

Lalu, bagaiaman jika karakter yang ingin dicari tidak ditemukan? Ketika karakter yang akan dicari tidak terdapat pada array, fungsi ini akan berhenti mencari tepat setelah karakter '\0' pada array ditemukan dan fungsi ini akan mengembalikan NULL pointer atau pointer kosong. Satu hal yang perlu diperhatikan lagi dalam contoh kode program di atas ialah penggunaan aritmatika pointer pada saat mencetak hasil ke layar, yaitu pch-kar+1. Untuk topik ini, sudah di bahas di postingan Aritmatika Pointer Array. Anda bisa membacanya sebagai bahan referensi untuk melengkapi pemahaman terhadap kode program di atas.

Sebelumnya, ketika fungsi ini sudah "menemukan" karakter yang ingin dicari untuk pertama kalinya, fungsi ini tidak lagi melanjutkan pencarian data ke posisi selanjutnya. Berdasarkan penjelasan tersebut, timbul sebuah permasalahan. Permasalahannya ialah bagaimana jika kita ingin mencari dan ingin memperoleh informasi mengenai ada berapa banyak dan di posisi mana sajakah karakter yang ingin dicari itu berada pada sederetan kalimat atau array target? Untuk menyelesaikan permasalahan ini, diperlukan sebuah perulangan dan bantuan aritmatika pointer agar hasil yang diperoleh nantinya sesuai dengan keinginan. Berikut contoh implementasi dari penyelesaian permasalahan di atas.

Fungsi strrchr Pada Bahasa C

Fungsi "strrchr" tidak berbeda jauh dengan fungsi strchr, bentuk dasar penulisan fungsi ini bisa dilihat di bawah ini. char * strrchr ( const char *, int );
Melihat bentuk dasar penulisan fungsi di atas, penggunaan fungsi strrchr ini juga tidak berbeda jauh dengan fungsi strchr. Yang membedakan hanya langkah akhir dari proses kerja fungsi ini dan itu yang menyebabkan pengembalian nilai yang didapatkan juga berbeda dari fungsi strchr sebelumnya. Jika fungsi strchr mengembalikan alamat karakter yang pertama kali ditemukan, maka fungsi ini justru mengembalikan alamat karakter yang terakhir kali ditemukan pada sederetan karakter atau array yang menjadi target pencarian.
Untuk contoh implementasi fungsi ini ke dalam kode program bahasa c, bisa dilihat di bawah ini.


Hasil eksekusi dari kode program yang diberikan pada postingan ini, dapat dilihat pada screenshoot dibawah ini.

Fungsi strchr dan strrchr Bahasa C - kodeprogramcpp

Penutup

Demikianlah untuk postingan kali ini. Jika terdapat kekurangan dan tutur kata yang kurang baik, mohon dimaafkan dan jika tidak keberatan mohon menuliskan satu dua kata mengenai postingan ini, baik kritik atau saran agar kedepannya dapat membantu penulis dalam meningkatkan mutu postingan dan pembahasan tentunya. Terima kasih. :)

No comments:

Post a Comment

Berikan komentar, Kritik dan saran teman-teman mengenai blog ini. Komentar, Kritik dan saran teman-teman sangat berarti untuk perkembangan Blog ini.
Salam Blogger, salam kodeprogramcpp.

Lihat Juga Berita Pilihan Ini