Artikel ini perlu dikembangkan dari artikel terkait di Wikipedia bahasa Inggris. (Oktober 2018)
klik [tampil] untuk melihat petunjuk sebelum menerjemahkan.
Lihat versi terjemahan mesin dari artikel bahasa Inggris.
Terjemahan mesin Google adalah titik awal yang berguna untuk terjemahan, tapi penerjemah harus merevisi kesalahan yang diperlukan dan meyakinkan bahwa hasil terjemahan tersebut akurat, bukan hanya salin-tempel teks hasil terjemahan mesin ke dalam Wikipedia bahasa Indonesia.
Jangan menerjemahkan teks yang berkualitas rendah atau tidak dapat diandalkan. Jika memungkinkan, pastikan kebenaran teks dengan referensi yang diberikan dalam artikel bahasa asing.
Untaian (bahasa Inggris: string) dalam pemrograman komputer adalah sebuah deret simbol. Tipe data untaian adalah tipe data yang digunakan untuk menyimpan barisan karakter. Sebuah untaian umumnya dianggap sebagai tipe data dan sering diimplementasi sebagai struktur data arraybita (atau kata) yang menyimpan urutan unsur, biasanya karakter, menggunakan beberapa pengkodean karakter. String juga dapat mendenotasikan array yang lebih umum atau tipe dan struktur data urutan (atau daftar) lainnya.
Ketika sebuah untaian muncul secara harfiah dalam kode sumber, itu dikenal sebagai untaian harfiah atau untaian awanama.[1]
Tipe data untaian adalah tipe data yang dimodelkan berdasarkan ide untaian formal. Untaian adalah tipe data yang sangat penting dan berguna sehingga diimplementasikan di hampir setiap bahasa pemrograman. Dalam beberapa bahasa mereka tersedia sebagai tipe primitif dan dalam bahasa lain sebagai tipe komposit. Sintaks dari sebagian besar bahasa pemrograman tingkat tinggi memungkinkan untuk sebuah untaian, biasanya dikutip dalam beberapa cara, untuk mewakili sebuah instance dari tipe data untaian; meta-string seperti itu disebut literal atau string literal.
Representasi
Representasi untaian sangat bergantung pada pilihan repertoar karakter dan metode pengkodean karakter. Implementasi untaian yang kuno dirancang untuk bekerja dengan repertoar dan pengkodean yang ditentukan oleh ASCII, atau ekstensi terbaru seperti seri ISO 8859. Implementasi kini sering menggunakan repertoar ekstensif yang didefinisikan oleh Unicode bersama dengan berbagai pengkodean kompleks seperti UTF-8 dan UTF-16.
Untaian sebagai record
Banyak bahasa, termasuk yang berorientasi objek, mengimplementasikan untaian sebagai record dengan struktur internal seperti:
classstring{size_tlength;char*text;};
Namun, karena implementasinya biasanya disembunyikan, untaian harus diakses dan dimodifikasi melalui fungsi anggota. text adalah penunjuk ke area memori yang dialokasikan secara dinamis, yang dapat diperluas sesuai kebutuhan. Lihat juga untaian (C++).
Perhatian pada keamanan
Tata letak memori dan persyaratan penyimpanan untaian yang berbeda dapat memengaruhi keamanan program yang mengakses data untaian. Representasi untauan yang membutuhkan karakter pengakhiran biasanya rentan terhadap masalah buffer overflow jika karakter pengakhiran tidak ada, disebabkan oleh kesalahan pengkodean atau penyerang dengan sengaja mengubah data. Representasi untaian yang menyadur bidang panjang terpisah juga rentan jika panjangnya dapat dimanipulasi. Dalam beberapa kasus, kode program mengakses data untaian memerlukan pemeriksaan batas untuk memastikan bahwa itu tidak secara tidak sengaja mengakses atau mengubah data di luar batas memori untaian.
Data untaian sering diperoleh dari input pengguna ke program. Dengan demikian, merupakan tanggung jawab program untuk memvalidasi untaian untuk memastikan bahwa untaian tersebut mewakili format yang diharapkan. Melakukan validasi masukan pengguna secara terbatas atau tidak sama sekali dapat menyebabkan program menjadi rentan terhadap serangan injeksi kode.
Tipe data untaian dalam beberapa bahasa pemrograman
Bahasa Pascal
Dalam bahasa Pascal, tipe data untaian dituliskan sebagai string. Pada kompilator Pascal lama, untaian terpanjang yang dapat dibuat terdiri dari 255 karakter. Hal ini terjadi karena Pascal menggunakan 1 byte data untuk menyimpan panjang efektif untaian.
Contoh kode Pascal yang menggunakan tipe data untaian:
program str;
var s: string[100]; //jika panjang maksimum tidak dimasukkan, kompilator akan menganggapnya 255
begin
s := 'Hello world';
writeln(s);
end.
Pada kompilator Pascal yang lebih baru dikenal pula tipe data ANSI-string yang dapat menyimpan karakter lebih banyak.
Bahasa C
Dalam bahasa C tidak ada tipe data khusus untuk menyimpan untaian. Untaian biasanya disimpan sebagai larik dari karakter-karakter. Berbeda dengan bahasa Pascal, untaian pada bahasa C merupakan sebuah null-terminated string, sehingga kapasitasnya hanya dibatasi oleh kapasitas memori komputer. Seperti pada tipe data larik pada bahasa C, pengguna dapat memberikan batas maksimum karakter yang dapat ditampung.
Contoh kode C yang menggunakan tipe data untaian:
#include <stdio.h>
int main(){
char s[100]; /* membuat untaian dengan panjang maksimum 99 karakter, karena karakter terakhir harus null */
s = "Hello world";
printf("%s\n", s);
}
Bahasa C++
Bahasa C++ merupakan turunan dari bahasa C sehingga representasi untaian sebagai larikkarakter masih berlaku. Namun bahasa C++ juga menyediakan tipe data untaian yang terdapat dalam C++ Standard Template Library (STL).
Contoh kode C++ yang menggunakan tipe data untaian pada STL:
#include <string>
#include <iostream>
using namespace std;
int main(){
string s; //panjang maksimum tidak perlu didefinisikan
s = "Hello world";
cout<<s<<endl;
}
Bahasa PHP
Di PHP, untaian adalah kumpulan dari karakter, bilangan, spasi, dan yang lainnya yang berada dalam tanda petik. Di bawah ini semuanya adalah untaian:
^"Introduction To Java - MFC 158 G". Diarsipkan dari versi asli tanggal 2016-03-03. String literals (or constants) are called ‘anonymous strings’Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)