Pascal‎ > ‎

Tabel ASCII

Untuk menampilkan karakter ASCII yang direpresentasikan oleh sebuah bilangan bulat, Anda dapat menggunakan perintah CHR

perhatikan kode pascal ASCII.pas berikut:

var 
  i:byte;
begin
  for i:= 32 to 255 do
    write(i:4,'=',chr(i):3);
end.

Pada kode di atas, kita melakukan pengulangan for untuk nilai i dari 32 hingga 255. Kenapa mulainya 32? Karena karakter ASCII yang "terlihat" di layar hanyalah karakter mulai dari 32 hingga 255.

Kemudian perhatikan bagian kode i:4 artinya kita tampilkan i dalam 4 spasi (rata kanan). Hal ini berguna untuk membuat sebuah Angka menjadi lebih rata. Hal yang sama dengan , chr(i):3 yang artinya menampilkan kode ASCII untuk bilangan i dengan spasi 3. 


Perlu juga diperhatikan bahwa total karakter yang dicetak oleh perintah 
write(i:4,'=',chr(i):3);
adalah 8, yaitu: 4 saat mencetak i, satu saat mencetak tanda sama_dengan, dan tiga saat mencetak kode ASCIInya. Dengan membuat total karakternya 8, hal ini akan membuat tabel ASCII kita akan lebih rata karena panjang layar di DOS adalah 80 karakter. Artinya,  setiap baris kita akan dapat menampung 10 kali perintah write.

Tampilan hasil kode ASCII.pas setelah sukses dicompile adalah seperti gambar berikut:



Jika Anda telah mengerti dengan program ASCII.pas di atas, Anda dapat melanjutkan dengan mencoba kode berikut: ASCII2.pas


uses crt;
var i,baris:byte;

begin
  clrscr;
  for i:= 32 to 255 do
    begin
      baris:=baris+1; if(baris>25) then baris:=1;
      GotoXY(((i-32) div 25)*8+1,baris);
      write(i:4,'=',chr(i):3);
    end;
  readln;
end.

Program ini (ASCII2.PAS) menampilkan kode ASCII berurut ke bawah, sehingga lebih gampang dilihat oleh mata manusia jika dibandingkan dengan kode sebelumnya yang berurut ke kanan.

Program ini lebih rumit, karena Anda harus terlebih dahulu memahami konsep bahwasanya layar di DOS lebarnya 80 (biasanya, ini bisa diganti dan juga dulu tergantung jenis monitor. Untuk sederhananya, kita anggap saja lebarnya selalu 80). Kita juga asumsikan bahwa tinggi baris layar DOS adalah 25. Kita menggunakan fungsi GotoXY(kolom,baris) untuk melakukan perpindahan ke kolom dan baris tertentu di layar monitor.


baris:=baris+1; if(baris>25) then baris:=1; 
Maksud perintah di atas adalah kita ingin berpindah pindah baris, dari 1 ke 25 dan apabila sudah melewati baris 25, kita kembali lagi ke atas, yaitu baris 1. Ini sama saja artinya dengan berhitung terus dari satu hingga 25 dan setelah itu kembali lagi ke satu, dua, tiga ... terus hingga 25 dan kembali terus ... sesuai dengan dibaris berapa kita ingin mencetaknya.

Bagian ter-rumit dalam kode ini adalah di bagian pergeseran ke kanan, yaitu pergeseran kolom, yaitu bergeser mengikuti perulangan((i-32) div 25)*8+1, seperti terlihat pada baris berikut:

GotoXY(((i-32) div 25)*8+1,baris);

Kita mengurangi i dengan 32 karena i dimulai dengan 32, kita ingin memulai dengan 0.

Perintah div berfungsi untuk mendapatkan bilangan bulat pembagian. Nilai awal i yang 32, setelah dikurangi 32 berarti menjadi nol. Nol dibagi 25 adalah nol. Nol dikali delapan hasilnya nol. Nol ditambah satu hasilnya satu. Itulah kolom yang digunakan untuk mencetak, dan nilai ini akan terus sama hingga i bernilai  56. 

56-32 adalah 24
lalu  24 dibagi 25 hasilnya nol koma sekian, 
tapi karena ini menggunakan perintah div, hasilnya nolnya saja, koma nya (perpuluhan) dibuang.

Perubahan terjadi saat i bernilai 57.
57-32 adalah 25
25 dibagi 25 bernilai 1
satu dikali 8 bernilai 8
delapan ditambah 1 bernilai 9

makanya untuk 57 hingga 81, kita mencetaknya di kolom ke sembilan ...

Kenapa sembilan? karena untuk mencetak isi tabel tadi butuh delapan karakter!

Lihat tampilan kode ASCII2 di bawah ini:


ċ
ASCII.PAS
(0k)
Muhammad Jazman,
20 Oct 2010, 10:41
ċ
ASCII2.PAS
(0k)
Muhammad Jazman,
20 Oct 2010, 10:53
Comments