Char dan String dalam Pascal

Tipe data yang digunakan untuk menyimpan satu karakter dalam pascal adalah tipe data char. Tipe data char bisa berupa huruf, angka, simbol atau satu nilai berukuran byte yang tidak dapat dicetak. Selain tipe data char yg menyimpan karakter dengan ukuran byte, ada tipe data lain yang bisa menyimpan karakter unicode. Tapi, untuk saat ini yang saya bahas hanya tipe data char.

Rangkaian karakter bisa disimpan sebagai satu variabel dengan tipe data string. String dalam pascal disebut zero length string karena panjang karakternya disimpan pada posisi pertama yg dianggap sebagai indeks ke-0 dalam array. String dalam Pascal sebenarnya adalah array yang berisi kumpulan karakter. Rangkaian karakter bisa kita simpan dalam Array. Tapi, tipe data array tidak akan kita pelajari saat ini, karena tipe data yang akan kita pelajari saat ini hanya tipe data karakter dan string.

Tipe data string dalam pascal menyimpan 255 karakter berupa huruf, angka atau karakter lainnya. Berikut ini contoh kode program yg menggunakan tipe data string.



Program stringku;
uses crt; 
Var s:string; 
begin
    clrscr;
    s:='Ini adalah string';
    Write('Isi string : ', s);
    Readln
end.


Dalam Pascal, tipe data char maupun string diapit dg dua tanda petik tunggal('). Pada compiler yg ada sekarang, selain char, ada juga tipe data ansi string yg bisa menyimpan lebih banyak karakter. Tapi, sekarang kita fokus dulu pada tipe data string standar yg ada pada pascal. String pada bahasa pascal bisa digabungkan dengan menggunakan operator tanda tambah (+). Tanda tambah di sini jelas berbeda dg tanda tambah pada penjumlahan bilangan. Untuk mengetahui bedanya coba ketik kode program di bawah ini dan lihat hasilnya, kemudian silakan dianalisa.

Program stringku;
uses crt;
Var s, t, u :string;
begin
    clrscr;
    s:='ini';
    t:='stringku'; 
    u:=s+' '+t; 
    Write('Hasil penggabungan : ', u);
    Readln
end.


Kadang ada saatnya kita perlu untuk mengetahui jumlah karakter atau panjang string.String pada pascal bisa di cek panjang atau jumlah karakternya dg fungsi "length" atau dg mencetak indeks ke-0 dari string tersebut. Contoh :


Program stringku;
uses crt;
Var s:string;
begin
    clrscr;
    s:='ini';
    Writeln('panjangnya = ', ord(s[0]));
    Write('panjangnya = ', length(s));
    Readln
end.







Ord berfungsi untuk mengubah karakter menjadi bilangan sesuai nilainya. Lawan dari ord adalah char yang berguna untuk mengubah angka menjadi karakter berdasarkan kode ASCII.
 
Ingat! semua bagian dari string adalah karakter. Untuk menampilkan karakter ke-n dari variabel s bisa ditulis dg "s[n]". Selain itu, kalian juga bisa menyimpan karakter dalam string ke dalam variabel dengan tipe data char. Tipe data char maupun string sama-sama diapit dengan tanda kutip tunggal ('), tapi char hanya bisa menyimpan satu karakter. Contohnya :


Program stringku;
uses crt;
Var s:string;
    n:integer=3;
    c:char='A';
begin
    clrscr;
    s:='Ini';
    Writeln('karakter ke -1 =', s[1], '/', ord(s[1]));
    Writeln('karakter ke -2 =', s[2], '/', ord(s[2]));
    c:=s[n];
    Writeln('karakter ke -', n, ' =', c, '/', ord(c));
    Readln
end.


Ada prosedur yang cukup berguna untuk mengubah string menjadi angka yaitu val. Selain itu ada juga prosedur str yang berguna untuk mengubah angka menjadi string. Untuk lebih jelasnya, perhatikan contoh berikut.


Program stringku;
uses crt;
Var s:string;
    i, j:integer;
begin
    clrscr;
    s:='1945';
    val(s, i, j);
    Writeln(i, '+1 = ', i+1);
    str(i, s);
    Write('''', s,'''', '+''1'' = ', s+'1');
    Readln
end.

Simpan, jalankan dan lihat hasilnya!!!