String adalah salah satu tipe data yang berfungsi untuk menyimpan dan memanipulasi teks. Lantas apa saja kegunaan tipe data ini? Bagaimana cara mendeklarasikannya? Apa saja fungsi yang terdapat dalam operasi ini? dan kode pemrograman apa yang bisa menjadi input ataupun output pada tipe data ini? Saya akan membahas semua pertanyaan Anda mengenai hal ini, yuk kita mulai!
String digunakan untuk menyimpan data yang termasuk di dalamnya huruf, kata, dan kalimat. String juga digunakan untuk memanipulasi teks seperti menggabungkan, memotong, atau mencari karakter tertentu di dalam teks. String terbentuk dari sekumpulan karakter yang dalam tipe data ini disebut sebagai alfabet. Alfabet dapat menampung maksimum255 karakter. Sangat banyak bukan?
Contoh di atas saya menggunakan kalimat yaitu "amanda stratzie" karena seperti yang sudah dijelaskan sebelumnya bahwa Saya bisa memasukkan huruf, kata, dan kalimat untuk dicetak. Lalu bagaimana sejarah lahirnya tipe data ini? Jika dilihat dari sejarahnya, perubahan tipe data assembly menjadi BCPL (B) dan kemudian menjadi bahasa C. Oleh karena itu bahasa C selalu mengadopsi struktur kode dari bahasa sebelumnya. Pada akhirnya membuat string selalu memiliki karakter "\0". Tujuannya agar memudahkan programmer dalam menghitung panjang string serta untuk kebutuhan alokasi memori. Karena jika kita ingat kembali, komputer di zaman itu hanya memiliki alokasi yang sangat terbatas meskipun hanya menampilkan kata, seperti:
char sapaan [] = "hai";
Sebenarnya string termasuk ke dalam array karakter, namun yang membedakan pada string selalu di akhiri dengan karakter : \0 atau sering disebut null terminated seperti yang sudah kita bahas sebelumnya mengenai sejarah string ini.
Apa saja fungsi dalam operasi string? Yuk kita bahas!
1. strcpy () ialah fungsi dengan tujuan menyalin nilai. Seperti kita menyalin suatu kata atau kalimat, apa pun yang di copy pasti akan ter paste tanpa mengurangi apa pun. Inilah prinsip dari strcpy. Fungsi ini disimbolkan dengan: (S1, S2); di mana S1 adalah variabel tujuan sedangkan S2 adalah variabel sumber yang berisi string. Perhatikan contoh berikut! Saya ingin menyalin kalimat "belajar tipe data string" dengan kode perintah pada baris ke-9 dan hasilnya akan dicetak sesuai perintah printf pada baris ke-12.
2. strcat () ialah fungsi dengan tujuan menggabungkan 2 string menjadi 1. Seperti halnya kita sering menggabungkan 2 dokumen word menjadi 1 file. Simbol yang dipakai dalam fungsi ini sama, namun berbeda definisi. S1 didefinisikan sebagai variabel yang berisi string, sedangkan S2 didefinisikan sebagai variabel yang berisi string untuk ditambahkan ke S1. Contoh di bawah ini saya akan menggabungkan nama dan gelar dengan menggunakan fungsi strcat. Perhatikan gambar berikut:
3. strcmp () ialah fungsi yang digunakan untuk membandingkan 2 string untuk mengetahui apakah kedua string tersebut sama atau berbeda. Simbol strcmp sama dengan kedua fungsi sebelumnya namun definisinya yang berbeda. S1 ialah variabel berisi string yang akan dibandingkan dan S2 ialah variabel berisi string yang akan dibandingkan. Mungkin dari teman-teman ada yang bertanya, "Kenapa definisinya sama?" Hal itu dikarenakan kita ingin membandingkan 2 string dengan fungsi ini. Coba diingat kembali tujuan dari fungsi ini! Pada contoh, Saya akan membandingkan apakah kata "elektro" dan "informatika" sama atau beda. Yuk lihat gambarnya:
4. strlen () ialah fungsi yang bertujuan untuk mengetahui jumlah karakter atau panjang dari sebuah string. Simbol dari fungsi ini ialah (S1); di mana S1 adalah variabel berisi string yang akan dihitung panjangnya. Contoh berikut, Saya ingin menghitung berapa karakter yang Saya miliki dalam kalimat "Tipe Data String", berapa jumlah karakternya? Perhatikan gambar di bawah ini:
5. strchr () ialah fungsi yang bertujuan untuk mencari karakter tertentu. Simbol tertera seperti ini: (S1, 'A'); di mana S1 adalah variabel berisi string dan A adalah karakter yang akan dicari. Saya akan mencoba mencari karakter huruf "a" pada kalimat "Belajar Tipe Data". Ingat ya spasi kosong tetap dihitung dalam pemrograman dan di huruf ke berapa ada karakter "a" itu? Yuk perhatikan kode berikut:
6. strstr () ialah fungsi yang digunakan untuk mencari teks atau string di dalam tipe data string dan untuk mengubah teks tersebut. Jangan bingung ya, teman! Teks dalam bahasa pemrograman disebut dengan string. Jika sebelumnya strchr digunakan untuk mencari karakter atau huruf, maka strstr memiliki fungsi yang sama namun diaplikasikan pada teks. Simbolnya yaitu: (S1, "Elektro"); S1 ialah variabel yang berisi string dan elektro ialah teks yang akan dicari. Berikut saya tampilkan contoh penggunaannya dalam pencarian kata "elektro" dalam suatu kalimat:
Contoh di atas, saya menggunakan perintah pada kode baris ke-8 yaitu menampilkan hasil kata "elektro" tanpa mengubahnya. Jika ingin mengubahnya maka aktifkan kembali kode pada baris ke-11 dengan cara menghilangkan "//" dan memasukkan kata penggantinya.
Pembahasan terakhir yaitu mengenai deklarasi. Jika kita sudah mengetahui ukuran data yang akan disimpan, maka deklarasikanlah variabel dengan ukuran secukupnya. Adapun input yang digunakan pada string adalah scanf dengan format %s. Perhatikan contoh di bawah ini:
Saya memaksimalkan karakter pada nama yaitu 30 seperti yang tertera pada baris pertama. Lalu bagaimana dengan output-nya? Prinsip yang sama digunakan pada output yaitu menggunakan %s pada printf.
Jika pada kode, Saya memasukkan nama sebanyak 2 kata yaitu "amanda stratzie" maka kode hanya akan menampilkan kata yang di depannya saja. Karena kode yang menggunakan scanf hanya bisa mencetak 1 kata. Maka solusinya adalah dengan menggunakan karakter berikut: %[^\n] yang menandakan bahwa perintah membaca hingga akhir baris, jadi tidak akan terpotong meskipun jumlahnya lebih dari 1 kata. Perhatikan contoh berikut:
Jika sudah berhasil mencetak beberapa kata, maka selanjutnya bagaimana agar string memiliki baris baru? dalam arti lain, string tidak selalu melanjutkan teks ke kanan namun di bawahnya. Kita bisa menggunakan karakter \n pada perintah scanf dan hasilnya seperti ini:
Lalu, bagaimana jika ingin memisahkan 2 suku nama ke dalam 2 variabel? Maka bisa menggunakan penggabungan antara %s dan %[^\n] seperti pada gambar di bawah:
Contoh di atas akan menghasilkan pemisahan 2 suku kata nama dengan karakter nama depan dan nama belakang. Sekian dulu ya artikel hari ini, see you!
Referensi: UNS. https://spada.uns.ac.id/pluginfile.php/206271/mod_resource/content/1/PERTEMUAN%202%20MENGISI%20DATA%20DATABASE.pdf#:~:text=Tipe%20Data%20Teks%20(String)%20merupakan,yang%20terdapat%20pada%20Database%20MySQL.&text=3.%20Tipe%20Data%20Date. Medina, Sari, Annisa. (2023, 2 September). Tipe Data String: Pengertian, Fungsi, Contoh, dan Operasi String. https://fikti.umsu.ac.id/tipe-data-string-pengertian-fungsi-contoh-dan-operasi-string/. Muhardian, Ahmad. (2019, 26 November). Mengenal Tipe Data String pada C. https://www.petanikode.com/c-string/. Unikom. https://repository.unikom.ac.id/30961/1/09.%20String%20%28diktat%29.pdf. Gambar 1 sampai 12. Sumber: Dokumentasi Pribadi.