Kali ini kita akan lanjut membahas tipe data String dalam bahasa pemrograman C, yakni tentang Pengertian dan Contoh Kode Program Tipe Data String.
Pengertian Tipe Data String dalam Bahasa C
Pengertian umum di bidang programming, string adalah tipe data yang menampung kumpulan karakter, seperti “aku”, “kamu” atau “Duniailkom”. Sebuah kalimat juga terhitung sebagai tipe data string, seperti “Saya sedang belajar bahasa C di Duniailkom”.
Di dalam bahasa pemrograman yang lebih modern, string biasanya menjadi tipe data bawaan. Misalnya di bahasa PHP atau JavaScript, tipe string langsung tersedia sebagaimana tipe data lain seperti integer, float atau char.
Namun bahasa pemrograman C tidak memiliki tipe data string secara langsung. String di dalam bahasa C adalah array dari tipe data char.
Cara Penggunaan Tipe Data String bahasa C
Karena string tidak lain adalah array dari char, maka cara pembuatan tipe data string dalam bahasa C juga sama seperti cara pembuatan array. Berikut contohnya:
#include <stdio.h> int main(void) { char foo[8] = {'b','e','l','a','j','a','r','\0'}; printf("Isi variabel foo adalah %s \n", foo); return 0; }
Di baris 5 saya membuat array foo yang bisa berisi 8 element, isi array foo ini berupa 8 buah tipe data char, yakni huruf ‘b’, ‘e’, ‘l’, ‘a’, ‘j’, ‘a’, ‘r’, dan ‘\0’. Ini dipakai untuk membuat sebuah string “belajar”.
Nanti dulu, kenapa ada tambahan ‘\0’ di bagian akhir?
Ini adalah salah satu syarat pembuatan string di dalam bahasa C. Semua string harus memiliki karakter “khusus” untuk menandakan akhir dari string. Tanda ‘\0’ mewakili karakter null yang dipakai oleh compiler bahasa C sebagai tanda akhir sebuah string.
Karena alasan ini pula saya harus membuat array foo sebagai foo[8], yakni sebuah array dengan 8 element, meskipun “belajar” hanya terdiri dari 7 karakter, bukan 8.
Ketika di tampilkan dengan perintah printf di baris 6, tipe data string memiliki kode tersendiri, yakni %s.
Bagaimana jika ternyata array foo di set dengan ukuran yang lebih kecil daripada yang seharusnya? Mari kita coba:
#include <stdio.h> int main(void) { char foo[5] = {'b','e','l','a','j','a','r','\0'}; printf("Isi variabel foo adalah %s \n", foo); return 0; }
Hasilnya variabel foo berisi string “belaj$”, tanda $ di sini menandakan bahwa ada sesuatu yang salah. Selain itu di bagian bawah Code::Block tampil pesan peringatan: “warning: excess elements in array initializer”, yup ini karena array kita tidak bisa menampung semua karakter.
Karena string pada dasarnya sebuah array, kita bisa akses setiap element string sebagaimana layaknya sebuah array:
#include <stdio.h> int main(void) { char foo[8] = {'b','e','l','a','j','a','r','\0'}; printf("Isi variabel foo[0] adalah %c \n", foo[0]); printf("Isi variabel foo[5] adalah %c \n", foo[5]); printf("Isi variabel foo[7] adalah %c \n", foo[6]); printf("Isi variabel foo[8] adalah %c \n", foo[7]); return 0; }
Hasil kode program:
Isi variabel foo[0] adalah b Isi variabel foo[5] adalah a Isi variabel foo[7] adalah r Isi variabel foo[8] adalah
Khusus untuk foo[8] tidak ada karakter yang tampil karena ‘\0’ atau karakter null yang secara prinsip berarti “kosong” atau “tidak ada”.
Alternatif lain dari penulisan string adalah dengan menulisnya dalam tanda kutip dua, seperti contoh berikut:
#include <stdio.h> int main(void) { char foo[11] = "Duniailkom"; printf("Selamat datang di %s \n", foo); return 0; }
Hasil kode program:
Selamat datang di Duniailkom
Jika ditulis seperti ini, kita tidak perlu menambah karakter null atau ‘\0’ di akhir string. String “Duniailkom” terdiri dari 10 karakter, tapi saya tetap harus membuat variabel foo[11] karena karakter null akan ditambahkan secara otomatis sebagai karakter ke-11.
Lebih jauh lagi, jumlah element array pun sebenarnya boleh tidak ditulis:
#include <stdio.h> int main(void) { char foo[] = "Belajar C di Duniailkom"; printf("Selamat datang di %s \n", foo); printf("Panjang string adalah %d \n", sizeof(foo)); return 0; }
Secara otomatis compiler bahasa C akan mengisi jumlah element array foo sesuai dengan jumlah karakter string, ditambah 1 untuk karakter null.
Di baris 8 saya menggunakan operator sizeof untuk mencari ukuran string foo, hasilnya “Panjang string adalah 24”, yakni total string “Belajar C di Duniailkom” sebanyak 23 karakter + 1 karakter null.
Dalam tutorial kali ini kita telah membahas pengertian dan cara penggunaan tipe data string dalam bahasa C, atau lebih tepat disebut sebagai array of char (array dari tipe data char).
Berikutnya saya masih ingin membahas tipe data string ini, yakni cara membaca dan menampilkan tipe data string menggunakan perintah scanf dan gets.
Mantap artikel nya om.. Sangat bermanfaat bagi saya. Terima kasih
Sama2, iya nih pengen ngelanjutin tutorial bahasa Duniailkom C lagi…
Apa fungsi dari <pre class om???
Itu merupakan kode internal HTML dalam web dunioailkom, tidak berhubungan dengan pembahasan bahasa C. Kemungkinan besar ter-copy ketika melakukan copas contoh kode program yang ada.
maaf boleh tanya om, kenapa kita copy kode program dari artikel kog tidak bisa di run ya, berikut kode program nya di code blocks
#include <stdio.h>
int main(void)
{
char foo[8] = {'b','e','l','a','j','a','r','<pre class="brush: c; gutter: true; first-line: 1">#include <stdio.h>
int main(void)
{
char foo[8] = {'b','e','l','a','j','a','r','\0'};
printf("Isi variabel foo adalah %s \n", foo);
return 0;
}</pre>'};
printf("Isi variabel foo adalah %s \n", foo);
return 0;
}
Sepertinya ketika copas ada kode internal HTML yang ikut tercampur, seharusnya tidak ada tambahan kode "<pre class="brush: c; gutter: true; first-line: 1">" dan "</pre>".
Bisa coba ulangi atau samakan dengan contoh kode pada artikel ini.
Bermanfaat.terima kasih mas
#include <stdio.h>
int main(void)
{
char foo[8] = {'b','e','l','a','j','a','r','<pre class="brush: c; gutter: true; first-line: 1">#include <stdio.h>
int main(void)
{
char foo[8] = {'b','e','l','a','j','a','r','\0'};
printf("Isi variabel foo adalah %s \n", foo);
return 0;
}</pre>'};
printf("Isi variabel foo adalah %s \n", foo);
return 0;
}
Mau nanya kenapa ketika dihilangkan <pre class="brush: c; gutter: true; first-line: 1">#include <stdio.h>
tetap ga bisa jalan min
Bisa coba copy kode berikut:
#include <stdio.h>
int main(void)
{
char foo[8] = {'b','e','l','a','j','a','r','\0'};
printf("Isi variabel foo adalah %s \n", foo);
return 0;
}
itu kode htmlnya bang wkwk