Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun 1970 oleh Niklaus Wirth dan digunakan untuk pendidikan komputer. Nama Pascal diambil dari seorang ahli matematika yang bernama Blaise Pascal yang menemukan mesin hitung pertama. Bahasa Pascal dirancang untuk menyelesaikan masalah dari berbagai kalangan pemakai, mulai dari para mahasiswa, pendidik, dan ilmuwan. Salah satu kompiler pascal yang terkenal dan tercepat adalah Turbo PASCAL yang dibuat oleh perusahaan Borland.
Pascal adalah suatu bahasa pemrograman terstruktur. Hal tersebut berarti semua program yang anda buat harus terstruktur dan teratur, dalam hal ini ada pemakaian goto dan jump. Struktur program pascal yang paling sederhana adalah :
uses ...;
var ...;
begin
.... {Your program is here}
end.
Adapun struktur dasar suatu program pascal adalah sebagai berikut :
program ... ; { Program heading }
uses ... ; { Uses clause }
label ... ; { Labels }
const ... ; { Constants }
type ... ; { Types }
var ... ; { Variables }
procedure ... ; { Procedures }
function ... ; { Functions }
begin
statement; { Statements }
...
end.
PEMBAHASAN
A. Program Heading
Judul program dalam Turbo Pascal bersifat optional dan tidak ada pengaruhnya dalam program. Jika ditulis akan memberikan nama program dan suatu daftar parameter optional dimana program itu berkomunikasi. Daftar itu terdiri dari sederetan indentifier yang diakhiri dengan tanda kurung dan dipisahkan dengan tanda titik koma.
Contoh :
Program Perhitungan(Input,Output);
Untuk membuat program anda menjadi mudah dibaca dan di mengerti, maka perlu diberi keterangan yang akan diabaikan oleh kompiler. Untuk membuat keterangan gunakan tanda kurawal { ini adalah keterangan }, atau (* ini adalah keterangan *).
Adapun type variable yang disediakan pada TURBO PASCAL :
1. Ordinal types Type data yang mempunyai urutan pasti, dan masih terbagi menjadi.
o Integer type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi atas berberapa menurut jangkauan data dan ukurannya : Type Jangkuan Ukuran Shortint-128..127 8 bit Integer-32768..32767 16 bit Longint-2147483648..2147483647 32 bit Byte 0..255 8 bit Word 0..65535 16 bit.
o Char type variabel yang berguna untuk pengolahan character ASCII, type character ini penulisannya ditandai dengan dua buah petik tunggal seperti : 'A', '3','*',#7 untuk menyatakan ' harus ditulis ''''.
o Boolean ype varibale yang berguna untuk pengolahan hal yang hanya mempunyai dua ketentuan yaitu benar(TRUE) dan salah(FALSE) saja.
2. Real types Type variable yang beguna untuk pengolahan data yang tidak bulat, untuk type real ini juga terbagi atas beberapa :
Type Jangkauan Ketelitian Ukuran
Real 2.9e-39..1.7e38 11-12 digit 6 bit
Single 1.5e-45..3.4e38 � 7-8 7-8 digit 4 bit
Double 5.0e-324..1.7e308 15-16 digit 8 bit
Extended 3.4e-4932..1.1e4932 19-20 digit 10 bit
Comp -9.2e18..9.2e18 19-20 digit 8 bit
Untuk pengolahan type variabel diatas di sediakan berbagai jenis operator antara lain :
Operator Integer Type Real Type
+ Penjumlahan Penjumlahan
- Pengurangan Pengurangan
* Perkalian Perkalian
/ Pembagian Pembagian
DIV Hasil bagi
MOD Sisa Bagi
Operator Integer Type Boolean Type
NOT Bitwise Negation Logical Negation
AND Bitwise AND Logical AND
OR Bitwise inclusive OR Logical inclusive OR
XOR Bitwise exclusive OR Logical exclusive OR
SHL Bitwise shift-left
SHR Bitwise shift-right
Operator relasi yang mengembalikan hasil Boolean
Operator Fungsi
:= Menyatakan nilai
= Sama dengan
<> Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
B. Cara Menampilkan Tulisan Ke Layar
Pascal menyediakan perintah Write dan Writeln yang dapat anda gunakan untuk menampilkan tulisan ke layar. Dapatkah anda memberi contoh program yang menggunakan variabel ? {Deklarasi variabel}
var
UmurKu : Byte;
Keterangan : String;
(*Program anda*)
begin
UmurKu:=19;
Keterangan:='Hi, saya sedang belajar Pascal di PentaCOM';
Writeln('Saya berumur ',UmurKu,' tahun');
Writeln(Keterangan);
end.
C. Cara Membaca Masukan Dari Pemakai
Perintah Readln dapat digunakan untuk membaca masukan dari pemakai dan menyimpannya ke suatu variabel.
var
UmurKu : Byte;
Keterangan : String;
begin
Write('Berapa umur anda ? '); Readln(UmurKu);
Write('Komentar anda: '); Readln(Keterangan);
Writeln;
Writeln('Saya berumur ',UmurKu,' tahun');
Writeln(Keterangan);
end.
D. Cara Membatasi Pencetakan Tempat Desimal Untuk Data Real Type
Untuk menentukan jumlah tempat sebelum desimal dan sesudah desimal anda dapat menggunakan :x:y setelah variabel yang akan dibatasi pencetakan nilainya, dimana x adalah jumlah tempat sebelum desimal dan y adalah jumlah tempat setelah desimal. Silahkan coba koding berikut :
var
Pi : Real;
Begin
Pi := 22/7;
Writeln('Bilangan Pi adalah ', Pi);
Writeln('Bilangan Pi adalah ', Pi:2:3);
end.
Unit apa yang perlu saya cantumkan pada bagian uses, kalau saya ingin 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 Ok, saya sudah tahu perintah Clrscr, apa perintah 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;
Hallo, anda belum memberitahukan kepada saya nomor warna yang dapat saya gunakan !
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).
E. Cara Membuat Tulisan Warna Berkedip-Kedip
Dapatkan hal tersebut dilakukan 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. Ok, saya sudah mengerti, bagaimana pula dengan warna latar belakang ? Pengaturan warna latarbelakang dapat menggunakan perintah :
TextBackground(nomor warna);
Dalam hal ini nomor warna yang berlaku hanya 0 s/d 7. Tadi ada ada sedikit menyinggung tentang memindahkan posisi cursor, apa gunanya dan apa perintahnya. 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 ingin mencetak tulisan tersebut pada kolom 20, baris 13, maka harus memindahkan cursor 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);
Bisakah mendapatkan nilai posisi cursor yang sedang aktif ?
Bisa, bisa menggunakan variabel internal unit CRT, yaitu WhereX, dan WhereY.
GotoXY(5,5);
Write('Turbo');
GotoXY(WhereX+10,3);
Write('Pascal');
F. Cara Membatasi Tampilan Pada Layar
Jumlah kolom dan baris pada layar normal adalah 80 kolom, 25 baris. Jika layernya yang lebih besar dari tulisan normal, bagaimana hal tersebut dapat dilakukan. Hal tersebut dapat dilakukan dengan mengatur Mode layar dengan perintah :
TextMode(CO40);
Dan
TextMode(CO80);
Untuk menormalkannya.
Contoh :
Uses CRT;
begin
TextMode(CO40);
Writeln('A Real BIG Characters on screen !');
Readln;
TextMode(CO80);
Writeln('Back to normal');
Readln;
end.
Cara 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.
G. Cara Menambah Suara Pada Program
Sebenarnya masih banyak perintah yang terdapat pada unit CRT, seperti :
Sound(frekuensi);
Delay(milidetik);
NoSound;
Fungsi-fungsinya sebagai berikut :
Fungsi perintah Sound untuk membunyikan speaker komputer dengan frekuensi tertentu.
Contoh :
Sound(500);
Bunyinya tidak berhenti, walaupun programnya sudah selesai !
berarti tidak menggunakan perintah NoSound untuk menghentikan efek dari perintah Sound.
Contoh :
Sound(500);
NoSound;
sekarang speaker komputer tidak berbunyi sama sekali,
Sisipkan delay diantara Sound dan NoSound.
Contoh :
Sound(500);
Delay(1000);
NoSound;
H. Konvensi Perhitungan
Memang pascal adalah bahasa yang sangat ketat dalam variabel dan type data. Berikut ini 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.
I. Sebuah Program Dengan Bahasa Pascal
Program Nilai_Akhir;
uses crt;
type
arr=array[1..4] of byte;
var
nilai:arr;
jawab:char;
procedure input;
var i:byte;
begin
clrscr;
gotoxy(3,1); writeln('Perhitungan Nilai Akhir:');
gotoxy(3,2); writeln('========================');
gotoxy(3,4); writeln('Nilai Absensi :');
gotoxy(3,5); writeln('Nilai TM :');
gotoxy(3,6); writeln('Nilai Mid :');
gotoxy(3,7); writeln('Nilai Final :');
gotoxy(3,8); writeln('Nilai Akhir :');
gotoxy(12,10); write('==>> Grade :');
for i:=1 to 4 do {looping dengan validasi nilai yang dimasukkan}
begin
repeat
gotoxy(19,3+i); ClrEol;
gotoxy(19,3+i); Readln(nilai[i]);
until nilai[i] in [0..100];
end;
end;
procedure Hitung;
var
akhir:real;
grade:char;
begin
akhir:=(0.1*nilai[1])+(0.1*nilai[2])+(0.3*nilai[3])+(0.5*nilai[4]); {rumus perhitungan}
gotoxy(19,8); write(akhir:-5:2); {nilai akhir}
if akhir >=85 then grade:='A' else {penentuan grade}
if akhir >=75 then grade:='B' else {nilai akhir}
if akhir >=65 then grade:='C' else
if akhir >=55 then grade:='D' else grade:='E';
gotoxy(25,10); write(grade);
end;
begin
repeat
input;
hitung;
gotoxy(3,13); write('Mau Coba Lagi (Y/T) ?');
repeat
gotoxy(25,13); jawab:=UpCase(ReadKey);
until (jawab='Y') or (jawab='T');
write(jawab);
until (jawab='T');
end.
Hasil Output :
Perhitungan Nilai Akhir:
==================
Nilai Absensi : 100
Nilai TM : 85
Nilai Mid : 80
Nilai Final : 95
Nilai Akhir : 90.00
==>> Grade : A
Mau Coba Lagi (Y/T) ?
By :
Bertel Ruata