Anda di halaman 1dari 13

String

String
• String adalah deretan karakter dengan
panjang tertentu
var
str : String;
str2 : String[10];
• Elemen dari sebuah string dapat diakses
dengan menggunakan indeksnya
c := str[2];
String
• Pada pascal, ada 3 jenis string:
– ShortString:
• maksimum 256 character
• Di simpan di memori dengan representasi byte
pertama berisi panjang string

4 T O K I

• Deklarasi yang disertai ukuran akan selalu


menghasilkan tipe ShortString
– S : String[12];
String
– AnsiString: tidak terbatas, panjang dibatasi
dengan char ‘\0’.
• Panjang tidak terbatas, reference counted

T O K I ‘\0’

• Dapat dideklarasikan dengan menggunakan tipe


AnsiString
– S: AnsiString;
String
• AnsiString digunakan dengan cara menset
compiler directive {$H} atau {$LONGSTRINGS}
• Contoh:
– {$H+}
– {$LONGSTRINGS ON}
• Kompilator akan mengkonversi kedua jenis
string tsb secara otomatis.
• Ekspresi yang mengandung kedua ShortString
dan AnsiString akan menghasilkan AnsiString
String
• Pchar: representasi string sebagai deretan
character yang diakhiri dengan ‘\0’
• Alokasi dinamis, kita harus
mendealokasikan kembali setelah tidak
dipakai.
• Manipulasi dengan library strings (uses
strings;)
Operasi pada string
• Menghitung panjang: length( str1 );
• Menggabungkan:
– Str1 := concat( str2, str3, str4 );
– Str1 := str2+str3+str4;
• Case conversion
– c1 := upcase( c2 );
– Uppercase( str ); -> uses sysutils;
• Mengkopi string
– Str1 := copy( str2, 5, 2 );
Operasi pada String
• Menghapus string
– delete( str2, 5, 2 );
• Menyisipkan string
– Insert( str2, str1, 5 );
• Mencari string
– X := pos( str2, str1 );
• IntToStr(integer):String (sysutils)
• Str( integer )
• Chr( integer )
• Leftstr(String, integer)
Operasi pada library string
• stralloc, strcat, strcomp, strcopy, strecopy,
strend, stricomp, strlcat, strlcomp, strlcopy,
strlen, strlicomp, strlower, strmove, strnew,
strpas, strpos, strscan
Algoritma pengolahan String
• Searching
• Pattern matching
• Parsing
• Kompresi
• Enkripsi
Contoh
function search( pat: String; text: String ): begin
integer; n := length(text);
j := 1; i := 1;
var i, j, m, n: integer; while (i<=n) and (search = 0) do
begin begin
search := 0; if text[i] <> pat[j] then begin
m := length(pat); i := i - j + 1; j := 1; end
if m=0 then begin else begin
search := 1; j := j + 1;
end if j > m then begin
else search := i - j + 2;
end
end;
i := i + 1;
end
end;
end;
• ‘tidakadastringyangdicari’
• ‘tidar’
• ‘tidakadastringyangdicari’
• ‘tidar’
• ‘tidakadastringyangdicari’
• ‘tidar’
• ‘tidakadastringyangdicari’
• ‘tidar’

Anda mungkin juga menyukai