Untaian: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Annie Mays (bicara | kontrib)
k Rujukan istilah baku ditambahkan: http://kateglo.bahtera.org/index.php?mod=glossary&op=1&phrase=string&dc=teknologiinformasi&lang=&src=&srch=Cari
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan peramban seluler
 
(66 revisi perantara oleh 35 pengguna tidak ditampilkan)
Baris 1:
{{expand language|topic=|langcode=en|otherarticle=String (computer science)|date=Oktober 2018}}
'''Untai'''<ref name="untai">[http://kateglo.bahtera.org/index.php?mod=glossary&op=1&phrase=string&dc=teknologiinformasi&lang=&src=&srch=Cari Badan bahasa], Rujukan istilah baku: untai.</ref> atau lebih dikenal dengan istilah Inggrisnya '''''string''''' dalam [[pemrograman komputer]] adalah sebuah deret simbol. Jenis data untai adalah jenis data yang digunakan untuk menyimpan untai karakter.
[[Berkas:0321 DNA Macrostructure.jpg|ka|jmpl|250px|Untaian pada [[DNA]] yang terdiri dari [[basis nitrogenus]].]]
[[Berkas:Hamming distance 3 bit binary.svg|ka|jmpl|250px|Untaian biner pada (''Hyper'')cube'' dengan panjang digit 3]]
 
'''Untaian''' ({{lang-en|string}}) dalam [[pemrograman komputer]] adalah sebuah deret simbol. Tipe data untaian adalah tipe [[data]] yang digunakan untuk menyimpan barisan [[Karakter (tipe data)|karakter]]. Sebuah untaian umumnya dianggap sebagai tipe data dan sering diimplementasi sebagai [[Larik|struktur data ''array'']] [[bita]] (atau [[Kata (Arsitektur komputer)|kata]]) yang menyimpan urutan unsur, biasanya karakter, menggunakan beberapa [[Pengodean karakter|pengkodean karakter]]. ''String'' juga dapat mendenotasikan [[Tipe data Larik|array]] yang lebih umum atau tipe dan struktur data urutan (atau [[Senarai (komputasi)|daftar]]) lainnya.
== Jenis untai data dalam beberapa bahasa pemrograman ==
 
Ketika sebuah untaian muncul secara harfiah dalam [[kode sumber]], itu dikenal sebagai [[string literal|untaian harfiah]] atau untaian awanama.<ref>{{cite web|title=Introduction To Java - MFC 158 G|url=http://www.acsu.buffalo.edu/~fineberg/mfc158/week10lecture.htm|archive-url=https://web.archive.org/web/20160303233357/http://www.acsu.buffalo.edu/~fineberg/mfc158/week10lecture.htm|archive-date=2016-03-03|quote=String literals (or constants) are called ‘anonymous strings’|url-status=live}}</ref>
=== Bahasa Pascal ===
 
Dalam bahasa formal, yang digunakan dalam [[logika matematika]] dan [[ilmu komputer teoretis]], sebuah untaian adalah urutan [[Simbol (informatika)|simbol]] yang terbatas yang dipilih dari himpunan yang disebut [[Alfabet (bahasa formal)|alfabet]].
Dalam bahasa Pascal, untai data (''data string'') dituliskan sebagai '''untai'''. Pada [[kompilator|penyusun]] (''compiler'') Pascal lama, untai terpanjang yang dapat dibuat terdiri dari 255 karakter. Hal ini terjadi karena Pascal menggunakan 1 [[byte|bita]] data untuk menyimpan kepanjangan serta efektivitas (''length and effectiveness of string'').
 
== Tipe data untaian ==
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 data primitif|tipe primitif]] dan dalam bahasa lain sebagai [[Tipe data komposit|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:<syntaxhighlight lang="cpp">
class string {
size_t length;
char *text;
};
 
</syntaxhighlight>Namun, karena implementasinya biasanya [[Penyembunyian informasi|disembunyikan]], untaian harus diakses dan dimodifikasi melalui fungsi anggota. <code>text</code> adalah penunjuk ke area memori yang dialokasikan secara dinamis, yang dapat diperluas sesuai kebutuhan. Lihat juga [[Penanganan string C++|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 [[Luapan penyangga|''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 [[Masukan validasi tidak tepat|terbatas atau tidak]] sama sekali dapat menyebabkan program menjadi rentan terhadap serangan [[injeksi kode]].
 
== Jenis untaiTipe data untaian dalam beberapa bahasa pemrograman ==
 
=== Bahasa Pascal ===
Dalam bahasa Pascal, untaitipe data (''data string'')untaian dituliskan sebagai '''untaistring'''. Pada [[kompilator|penyusun]] (''compiler'') Pascal lama, untaiuntaian terpanjang yang dapat dibuat terdiri dari 255 karakter. Hal ini terjadi karena Pascal menggunakan 1 [[byte|bita]] data untuk menyimpan kepanjangan[[panjang sertaefektif]] efektivitas (''length and effectiveness of string'')untaian.
 
Contoh kode Pascal yang menggunakan jenis untaitipe data untaian:
program str;
var s: string[100]; //jika panjang maksimum tidak dimasukkan, penyusunkompilator akan menganggapnya 255
begin
s := 'Hello world';
writeln(s);
end.
 
Pada penyusunkompilator Pascal yang lebih baru dikenal pula jenistipe data untai-[[ANSI-string]] yang dapat menyimpan karakter lebih banyak.
 
=== Bahasa C ===
 
Dalam bahasa C tidak ada jenistipe data khusus untuk menyimpan untaiuntaian. UntaiUntaian biasanya disimpan sebagai [[larik]] dari karakter-karakter. Berbeda dengan bahasa Pascal, untaiuntaian pada bahasa C merupakan sebuah untai terhentikan-sifar (''[[null-terminated string]]''), sehingga daya tampungnyakapasitasnya hanya dibatasi oleh daya tampungkapasitas [[memori]] komputer. Seperti pada jenistipe data [[larik]] pada bahasa C, pengguna dapat memberikan batas maksimum karakter sebanyak-banyaknya yang dapat ditampung.
 
Contoh kode C yang menggunakan jenis untaitipe data untaian:
#include <stdio.h>
int main(){
char s[100]; /* membuat untaiuntaian dengan panjang maksimum 99 karakter, karena karakter terakhir harus sifar (''[[null'')]] */
s = "Hello world";
printf("%s\n", s);
Baris 30 ⟶ 57:
 
=== Bahasa C++ ===
Bahasa C++ merupakan turunan dari bahasa C sehingga penulisan[[representasi]] untaiuntaian sebagai [[larik]] [[karakter]] masih berlaku. Namun bahasa C++ juga menyediakan jenis untaitipe data untaian yang terdapat dalam Pustaka Pola Acu Baku C++ ([[C++ Standard Template Library]] (STL)).
 
Contoh kode C++ yang menggunakan jenis untaitipe data untaian pada STL:
Bahasa C++ merupakan turunan dari bahasa C sehingga penulisan untai sebagai [[larik]] [[karakter]] masih berlaku. Namun bahasa C++ juga menyediakan jenis untai data yang terdapat dalam Pustaka Pola Acu Baku C++ (C++ Standard Template Library (STL)).
 
Contoh kode C++ yang menggunakan jenis untai data pada STL:
#include <string>
#include <iostream>
using [[namespace]] std;
int main(){
string s; //panjang maksimum tidak perlu didefinisikan
Baris 43 ⟶ 69:
}
=== Bahasa PHP ===
Pada untaiDi PHP, untaian terdapatadalah kumpulan dari karakter, bilangan, spasi, dan yang lainnya yang berada dalam tanda petik. Semua yang tertera diDi bawah ini merupakansemuanya adalah untaiuntaian:
* '9 Januari 2009 '
* '1.000.000'
* "satu juta"
* 'Belajar PHP'
==== Contoh penggunaanPenggunaan untaiUntaian di PHP ====
//mendefinisikan untaiuntaian
$kegiatan = 'Belajar PHP';
$tempat = 'wikipedia';
//Pelekatan Untai (''StringStrings Concatenation'')
echo $kegiatan." di ".$tempat;
 
=== RujukanBahasa Python ===
Pada bahasa python, untaian diapit dengan tanda kutip tunggal maupun ganda. Contoh Penggunaan Untaian di Python
<references />
#mendefinisikan untaian
string1 = 'halo dunia'
string2 = "ini string pada bahasa python"
#keluaran untaian
print(string1)
print(string2)
#menggabungkan untaian
print(string1+" "+string2)
== Referensi ==
{{Commons category|String}}
{{reflist}}
 
{{Authority control}}
== Pranala Luar ==
* [http://www.myphptutorials.com/tutorials/5/php-dasar-string-number-konstanta PHP Dasar : Untai, Bilangan & Tetapan/Pemalar]
* [http://www.myphptutorials.com/tutorials/4/dasar-dasar-php-bagian-i Dasar-dasar PHP]
 
[[Kategori:TipeJenis data]]
{{bahasa-komputer-stub}}
 
[[Kategori:Tipe data]]
[[Kategori:Struktur data]]
[[Kategori:Pengkodean karakter]]
[[Kategori:Tipe primitif]]
[[Kategori:Entitas sintaksis]]
 
 
[[ar:سلسلة (حاسوب)]]
{{bahasa-komputer-stub}}
[[bg:Низ]]
[[ca:Cadena (informàtica)]]
[[ckb:زنجیرەنووسە]]
[[cs:Textový řetězec]]
[[da:Tekststreng]]
[[de:Zeichenkette]]
[[el:Συμβολοσειρά]]
[[en:String (computer science)]]
[[es:Cadena de caracteres]]
[[et:Sõne (andmetüüp)]]
[[fa:رشته (علوم رایانه)]]
[[fi:Merkkijono]]
[[fr:Chaîne de caractères]]
[[he:מחרוזת (מדעי המחשב)]]
[[hu:String]]
[[is:Strengur (tölvunarfræði)]]
[[it:Stringa (informatica)]]
[[ja:文字列]]
[[ko:문자열]]
[[ms:Rentetan]]
[[nl:String (informatica)]]
[[no:Streng (informatikk)]]
[[pl:Tekstowy typ danych]]
[[pt:Cadeia de caracteres]]
[[ru:Строковый тип]]
[[sr:Ниска]]
[[sv:Sträng (data)]]
[[ta:சரம் (கணினியியல்)]]
[[uk:Рядок (програмування)]]
[[zh:字符串]]