Output Konsol
Write / WriteLn
Untuk mencetak string di Pascal, gunakan prosedur bawaan Write atau WriteLn; WriteLn akan menambahkan karakter ganti baris secara otomatis di bagian akhir teks.
Ini adalah prosedur bawaan yang sangat fleksibel di Pascal: dapat menerima parameter berapa pun dengan tipe data apapun, nilai akan dikonversi menjadi string otomatis saat dicetak, serta mendukung sintaks format khusus untuk mengatur lebar pengisian angka dan presisi bilangan pecahan.
WriteLn('Hello world!');
// Cetak ekspresi bilangan bulat
WriteLn('You can output an integer: ', 3 * 4);
// Bilangan bulat rata kanan dengan lebar total 10 karakter
WriteLn('You can pad an integer: ', 666:10);
// Format bilangan pecahan: lebar total 1, 4 angka di belakang koma
WriteLn('You can output a float: ', Pi:1:4);Code language: JavaScript (javascript)
Ganti Baris Manual
Konstanta LineEnding
Jika perlu menyisipkan ganti baris secara manual di dalam satu string, gunakan konstanta LineEnding dari pustaka standar Free Pascal; Castle Game Engine juga menyediakan konstanta singkat bernama NL.
String Pascal tidak mengenali urutan escape garis miring terbalik (\n tidak berfungsi). Contoh penulisan di bawah ini salah:
// Salah: \n tidak akan dikenali sebagai ganti baris
WriteLn('One line.\nSecond line.');Code language: JavaScript (javascript)
Dua cara penulisan yang benar:
// Gabungkan konstanta ganti baris
WriteLn('One line.' + LineEnding + 'Second line.');
// Panggil WriteLn dua kali terpisah (lebih ringkas dan disarankan)
WriteLn('One line.');
WriteLn('Second line.');Code language: JavaScript (javascript)
Catatan Penting
WriteLn hanya dapat digunakan pada program konsol
Write/WriteLn hanya berfungsi pada aplikasi konsol. Anda wajib menuliskan arahan kompiler di bagian atas file program utama:
{$apptype CONSOLE}Code language: PHP (php)
Jangan gunakan mode GUI:
{$apptype GUI} // Memanggil WriteLn langsung di program GUI akan memicu galatCode language: PHP (php)
- Unix/Linux/macOS: program GUI terkadang tidak error saat mencetak, namun outputnya tidak berguna;
- Windows: menjalankan WriteLn langsung di aplikasi grafis GUI akan menimbulkan kesalahan saat runtime.
Standar Log Castle Game Engine
Saat mengembangkan dengan Castle Game Engine, dilarang pakai WriteLn langsung untuk pesan debug. Gunakan fungsi log khusus:
WriteLnLog: log debug biasaWriteLnWarning: log peringatan
Mesin akan mengarahkan log secara otomatis ke media output yang sesuai:
- Sistem Unix: output konsol standar stdout;
- Game GUI Windows: ditulis ke file log lokal;
- Platform Android: terhubung dengan log sistem Android, dapat dilihat lewat
adb logcat.
Tabel Padanan Istilah
| Istilah Asli Bahasa Inggris | Makna di Pascal |
|---|---|
| Write / WriteLn | Output tanpa ganti baris / Output dengan ganti baris |
| LineEnding | Konstanta ganti baris sistem (kompatibel lintas platform) |
| NL | Konstanta ganti baris singkat milik Castle |
| padding | Pengisian kolom angka, lebar perataan |
| precision | Presisi angka desimal bilangan pecahan |
| {$apptype CONSOLE} | Arahan kompiler aplikasi konsol |
| {$apptype GUI} | Arahan kompiler aplikasi antarmuka grafis |
| adb logcat | Alat penampil log Android |
| standard output | Aliran output standar (stdout) |
Contoh Lengkap Bagian Ini
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
{$R+}
begin
WriteLn('Hello world!');
// Cetak ekspresi bilangan bulat
WriteLn('You can output an integer: ', 3 * 4);
// Bilangan bulat rata kanan dengan lebar total 10 karakter
WriteLn('You can pad an integer: ', 666:10);
// Format bilangan pecahan: lebar total 1, 4 angka di belakang koma
WriteLn('You can output a float: ', Pi:1:4);
// Salah: \n tidak akan dikenali sebagai ganti baris
// WriteLn('One line.\nSecond line.');
// Gabungkan konstanta ganti baris
WriteLn('One line.' + LineEnding + 'Second line.');
// Panggil WriteLn dua kali terpisah (lebih ringkas dan disarankan)
WriteLn('One line.');
WriteLn('Second line.');
end.Code language: PHP (php)


Pastikan menambahkan arahan kompiler di atas agar program berjalan normal
Output dan Log