Tutorial Turbo Pascal 7.0 Part2

Pada modul 2 Tutorial Turbo Pascal 7.0 ini kita akan coba bahas mengenai Unit dan warna, baik itu text color maupun warna background dari program yang akan kita buat.


Unit untuk melakukan pengaturan layar.
Turbo Pascal menyediakan suatu unit CRT, yang berisi perintah-perintah pengaturan layar seperti membersihkan layar, mengatur warna tulisan, warna background, memindahkan posisi cursor, mode layar, dan membuat window 

Unit untuk mengatur warna tulisan.
Pada prinsipnya ada dua cara untuk mengatur warna tulisan yang dicetak dengan perintah Write dan Writeln, yang pertama adalah perintah :

TextColor(nomor warna);
Dan yang kedua adalah variabel internal dari unit CRT:
Textattr := nomor warna;


Baiklah, berikut ini adalah nomor warna yang mewakili masing-masing warna: 0 (black), 1 (blue), 2 (green), 3 (cyan), 4 (red), 5 (magenta), 6 (brown), 7 (lightgray), 8 (darkgray), (9) lightblue, 10 (lightgreen), 11 (lightcyan), 12 (lightred), 13 (lightmagenta), 14 (yellow), 15 (White).

Tulisan warna berkedip-kedip

Anda dapat saja melakukan hal tersebut dengan menambahkan angka 128 pada nomor warna yang anda inginkan, misalnya :
TextColor(4 + 128);
Writeln('Merah dan berkedip-kedip');
Atau :
TextColor(Red + Blink);
Writeln('Merah dan berkedip-kedip');


Pada prinsipnya anda dapat menggunakan konstanta dari masing-masing nomor warna seperti black, blue, green, dll, untuk menggantikan pemakaian nomor.
Warna latar belakang
Pengaturan warna latar belakang dapat menggunakan perintah :
TextBackground(nomor warna);
Dalam hal ini nomor warna yang berlaku hanya 0 s/d 7.

Fungsi dan printah memindahkan posisi cursor
Pada lingkungan dos, posisi tulisan dilayar dicetak berdasarkan posisi cursor yang sedang aktif, misalnya sekarang posisi cursor berada di kolom 10, baris 5, maka
perintah :
Writeln('Sedang belajar Pascal di PentaCOM');
Akan menampilkan tulisan tersebut mulai kolom 10 di baris 5. Jadi misalnya anda ingin mencetak tulisan tersebut pada kolom 20, baris 13, maka anda harus memindahkan cusor keposisi kolom 20, baris 13, diikuti dengan perintah pencetakan tulisan tersebut, contoh :
GotoXY(20,13);
Writeln('Tulisan ini dicetak mulai kolom 20, di baris 13);

Mendapatkan nilai posisi cursor yang sedang aktif 
Anda bisa menggunakan variabel internal unit CRT, yaitu WhereX, dan WhereY.
GotoXY(5,5);
Write('Turbo');
GotoXY(WhereX+10,3);
Write('Pascal');


Jumlah kolom dan baris pada layar normal
Normalnya 80 kolom, 25 baris.

Mengatur Mode layar Agar terlihat lenih Besar 
dengan perintah :
TextMode(CO40);
Dan untuk menormalkannya dengan printah :
TextMode(CO80);

Contoh :
Uses CRT;
begin
TextMode(CO40);
Writeln('A Real BIG Characters on screen !');

Readln;
TextMode(CO80);
Writeln('Back to normal');
Readln;
end.


Membatasi dari pencetakan dilayar berdasarkan koordinat kiri atas dan koordinat kanan bawah
dengan perintah :
Window(x1, y1, x2, y2);
Dimana x1, y1 adalah koordinat kiri atas dan x2, y2 adalah koordinat kanan bawah.
Contoh :
uses Crt;
begin
ClrScr;
WriteLn('Creating a window from 30,10 to 50,20');
Window(30,10,50,20);
WriteLn('We are now writing in this small window we just created, we'+
'can''t get outside it when writing long lines like this one');
Write('Press any key to clear the window');
ReadKey;
ClrScr;
Write('The window is cleared, press any key to restore to fullscreen');
ReadKey;
{Full Screen is 80x25}
Window(1,1,80,25);
Clrscr;
Writeln('Back in Full Screen');
end.


sebenarnya masih banyak perintah yang terdapat pada unit CRT, seperti :
Sound(frekuensi);
Delay(milidetik);
NoSound;


Fungsi perintah Sound untuk membunyikan speaker komputer dengan frekuensi tertentu.
Contoh :
Sound(500);
Untuk menghentikan efek dari perintah Sound.
Contoh :
Sound(500);
NoSound;

Jangan lupa menyisipkan delay diantara Sound dan NoSound.
Contoh :
Sound(500);
Delay(1000);
NoSound;


Arti dari peringatan compiler akan kesalahan Type Mismatch.
pascal adalah bahasa yang sangat ketat dalam variabel dan type data. Berikut ini saya akan menerangkan konvensi perhitungan dan type data yang dihasilkan :

Konvensi Penjumlah (+), Pengurangan (-), dan Perkalian (*) :

integer dengan integer = integer
integer dengan real = real
real dengan real = real

Konvensi Pembagian (/) :
Selalu menghasilkan real.

Pembagian bulat dengan Div :
Menghasilkan Integer.

Latihan di Lab :
(*Hangman.pas*)
uses crt;
const
havetry=10;
s: array[0..18] of string=
('hello', 'mouse', 'hacher', 'programmer', 'killer', 'teacher', 'splotchier',
'butcher', 'computer', 'pascal', 'house', 'poor', 'children', 'museum',
'security', 'spillway', 'stupidity', 'corrigenda', 'freebooter');
var ch: char;
gue,b,nowwrd,trynow: byte;
s1,wrs,alr: string;
r: boolean;
win: integer;
begin
win:=0;
clrscr;
Writeln('A.Larkin Hangman ESC for exit');
writeln;

randomize;
repeat
writeln;
nowwrd:=random(18);
s1:=s[nowwrd];
gue:=0;
wrs:='';
alr:='';
trynow:=havetry;
for b:=1 to length(s[nowwrd]) do write('_');
repeat
gotoxy(20,wherey);
write('You have ',trynow,' tries ');
ch:=readkey;
r:=false;
if ch<>#0 then
repeat
b:=pos(ch,s1);
if (b<>0) and (s1[b]<>#0) then
begin
gotoxy(b,wherey);
write(s1[b]);
alr:=alr+ch;
s1[b]:=#0;
gue:=gue+1;
gotoxy(40,wherey);
write(' ');
r:=true;
end else
if (pos(ch,alr)<>0) and (r=false) then
begin
gotoxy(40,wherey);
write('Already tried!');
end else
if (b=0) and (r=false) then
begin
trynow:=trynow-1;
alr:=alr+ch;
wrs:=wrs+ch;
gotoxy(57,wherey);
write('Wrong: ',wrs);
gotoxy(40,wherey);
write(' ');
end;
until (b=0) or (trynow=0);
until (ch=#27) or (gue=length(s1)) or (trynow=0);
if (trynow=0) then
begin
win:=win-1;
delline;
gotoxy(1,wherey);
write(s[nowwrd]);
gotoxy(20,wherey);
write('You lost! Your scores is ',win);
end else
if (gue=length(s1)) then
begin
win:=win+1;
delline;
gotoxy(1,wherey);

write(s[nowwrd]);
gotoxy(20,wherey);
write('You win! Your scores is ',win);
end;
until ch=#27;
end.


Daftar Frekuensi

Nada
Frekuensi
C
262
D
294
E
330
F
350
G
392
A
440
B
494

Sekian dulu ya untuk modul 2 nya.. untuk membaca artikle sebelumnya baca di modul 1 dan silahkan baca Modul 3 di postingan berikutnya..

Tidak ada komentar:

Posting Komentar