Rabu, 20 Oktober 2010

pemrograman pascal

Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun 1970 oleh Niklaus Wirth dan digunakan untuk pendidikan komputer.
Menu Run [Ctrl + F9]
Perintah ini digunakan untuk mengeksekusi program yang sudah anda buat. Anda juga bisa menekan Ctrl + F9 untuk mengeksekusi program anda.
Menu Compile [Alt + F9]
Perintah ini digunakan untuk mengkompile program atau bisa juga kita bilang kalau program yang telah kita buat tadi dengan bahasa pascal di terjemahkan kedalam bahasa komputer agar si komputer ini mengerti apa-apa saja perintah kita.
Submenu Make
Pilihan ini digunakan untuk mengaktifkan perintah make, jika file yang primer telah diberi nama, maka file ini akan dikompilasi, jika tidak maka file yang terakhir yang sedang dimuat di editor akan dikompilasi.. Pilihan ini sangat berguna jika terdapat beberapa program yang secara fisik terpisah tetapi secara logikanya merupakan suatu kesatuan.
Submenu Build
Perintah ini mirip dengan perintah make, hanya saja perintah build ini sifatnya bebas, sedangkan perintah make hanya akan mengkompilasi file-file selain file yang digunakan.

 Reserved Word
Reserved Word adalah kata-kata baku yang digunakan dalam program dan sudah terintergrated dalam pascal dan juga mempunyai bentuk serta kegunaan tertentu yang telah didefinisikan oleh Pascal.
Reserved Word tidak boleh didefinisikan kembali oleh pemakai, sehingga tidak dapat digunakan sebagai pengenal (Identifier). Dalam bahasa pemrograman Pascal,
beberapa Reserved Word dalam Pascal anatra lain:
AND DOWNTO IN OF STRING ASM ELSE INHERITED OR THEN ARRAY END INLINE PACKED TO BEGIN EXPORTS INTERFACE PROCEDURE TYPE CASE FILE LABEL PROGRAM UNIT
CONST FOR LIBRARY RECORD UNTIL CONSTRUCTOR FUNCTION MOD REPEAT USES
DESTRUCTOR GOTO NIL SET VAR DIV IF NOT SHL WHILE DO IMPLEMENTATION OBJECT SHR WITH
.


Selain dari Reserved Word di atas, Turbo Pascal masih memiliki tambahan Reserved
Word berikut:
ABSOLUTE ASSEMBLER () FAR FORWARD INDEX

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 koma.
Contoh :
Program Perhitungan(Input,Output);

Uses Clause
Bagian uses clause digunakan untuk menentukan library yang dibutuhkan saat proses program. LIBRARY merupakan file penyimpan subroutine yang secara berulang digunakan saat proses program. Library ini diistilahkan sebagai unit dalam Turbo PASCAL yang terdiri dari SYSTEM, OVERLAY, GRAPH, DOS, CRT yang ditempatkan dalam file TURBO.TPL.
Contoh :                        
Uses Crt; (*menggunakan Unit Crt *)

Perhatian :
Unit system merupakan unit yang secara otomatis akan disertakan dalam setiap
program, unit inilah mengatur semua perintah dasar input dan output pada Pascal .
Sedangkan unit-unit lain hanya akan disertakan bila kita pilih pada bagian uses.

Declaration
Bagian ini meliputi deklarasi untuk label, const, type, var, procedure dan function.
Syarat terpenting dalam pembentukan suatu program adalah, bahwa setiap variabel,
type non-standard, label, procedure non-standard, serta function non-standard yang
dipakai didalamnya harus nyatakan (deklarasi) terlebih dahulu pada bagian deklarasi.
Setiap deklarasi tersebut harus bersifat unik (tidak boleh serupa satu sama yang lain).
Penulisan nama dalam deklarasi tersebut harus memenuhi syarat-syarat sebagai
berikut :
- panjang nama maximum 63 character, diawali dengan alphabet
- tidak ada special character kecuali tanda garis bawah ("_")
- tidak boleh serupa dengan reserved word (kata tercadang)
- tidak boleh serupa dengan indentifier lainnya.

Variabel Declaration
Setiap variabel yang digunakan dalam program harus didefinisikan terlebih dahulu
sebelum digunakan. Cara penulisan ini adalah :
Var
<nama var> : <type variable>;

Untuk membuat program anda menjadi mudah dibaca dan dimengerti, 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
- Integer
Type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi
atas berberapa menurut jangkauan data dan ukurannya :

Pascal Variable Name, Range, and Type
Type name
Range
Type
Shortint
-128 to +127
integer
Byte
0 to 255
integer
Integer
-32768 to +32767
integer
Word
0 to 65535
integer
Longint
-2146473648 to +2146473647
integer
Real
-??????? to +???????
fractional
String
up to 255 letters
non-numeric
Char
1 letter only
non-numeric

- 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 ''''
- Boolean
Type 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 :
1. Statemen-statemen yang digunakan untuk input/output.
# Read/Readln [prosedur].
Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu variabel.
Sintaks: Read/Readln(x); (ingat, selalu diakhiri dengan titik koma [;]) Keterangan : x = variabel.
Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya.
Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input.

# ReadKey [fungsi].
Untuk pembacaan sebuah karakter dari keyboard. Tipe data yang dihasilkan adalah char.
Sintaks: ReadKey;

# Write/Writeln [prosedur].
Digunakan untuk menampilkan isi dari suatu nilai variable di layar.
Sintaks: Write/Writeln(x);
Keterangan : x = variabel.
Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor
Contoh :
Program input;
Uses Crt;
Var nm : String;
npm : String;
Begin
Clrscr;
Writeln ('masukkan nama dan NPM ');
Writeln ('------------------------------');
Write ('nama anda : ');
Readln (nm);
Writeln ('NPM anda : ');
Readln (npm);
End.
Bila dijalankan hasilnya adalah:
masukkan nama dan NPM
------------------------------
nama anda : ( di input )
NPM anda : ( di input )

2. Statemen-statemen yang digunakan untuk pengaturan letak layar.
# ClrScr [prosedur].
Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; 􀃆[Clear screen]

# GotoXY[prosedur].
Untuk menempatkan posisi kursor pada layar.
Sintaks: GotoXY(X, Y: Byte);
Keterangan : X = sumbu X (posisi horisontal)
Y = sumbu Y (posisi vertikal)
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);
GotoXY(5,5);
Write('Turbo');
GotoXY(WhereX+10,3);
Write('Pascal');
jumlah kolom dan baris pada layar normal ?
Normalnya 80 kolom, 25 baris.

TextMode(CO40);
Dan
TextMode(CO80);

Uses CRT;
begin
TextMode(CO40);
Writeln('A Real BIG Characters on screen !');
Readln;
TextMode(CO80);
Writeln('Back to normal');
Readln;
end.

# DelLine [prosedur].
Untuk menghapus sebuah baris pada posisi kursor dan menaikkan baris-baris dibawahnya.
Sintaks: DelLine;

# InsLine [prosedur].
Untuk menyisipkan sebuah baris pada posisi kursor dan menggeser kebawah tampilan-tampilan baris dibawahnya.
Sintaks: InsLine;

Statemen-statemen tambahan (warna,suara dan window).
# TextColor [prosedur].
Untuk mengatur warna dari karakter-karakter di layar.
Sintaks: TextColor (color : Byte);
Catatan : untuk pilihan warna lihat pada buku Turbo Pascal yang anda miliki.
Daftar TextColor :
(2) 􀃆 Hijau Muda (3) 􀃆 Hijau pupus (4) 􀃆 Merah
(5) 􀃆 Ungu Tua (6) 􀃆 Kuning (7) 􀃆 Putih
(8) 􀃆 Biru Tua (9) 􀃆 Biru Cerah (10) 􀃆 Hijau Muda
(12) 􀃆 Merah Muda (13) 􀃆 Ungu Cerah (14) 􀃆 Kuning Muda
(15) 􀃆 Ungu Pupus (16) 􀃆Hitam
Daftar TextColor dengan Blink :
(17) 􀃆 Biru Tua (18) 􀃆 Hijau Muda (19) 􀃆 Hijau Pupus
(20) 􀃆 Merah (21) 􀃆 Ungu Tua
 
uses crt;
 
begin
  TextColor(14);
  TextBackGround(1);
  Writeln('Hello there !');
end.

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');
# TextBackGround [prosedur].
Untuk mengatur warna latar belakang dari karakter-karakter di layar.
Sintaks: TextBackGround (Color : Byte);

# Bentuk – bentuk Perulangan
Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan percabangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai
sejumlah yang ditentukan pemakai. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas.

# Perulangan For.
Perulangan dengan statemen For digunakan untuk mengulang statemen atau suatu blok statemen berulang kali. Perulangan dengan statemen For dapat berupa perunlangan positif dan perulangan negatif.

# Perulangan For positif
contoh :
perulangan positif untuk satu statement :
Uses Crt;
Var
i : Integer;
Begin
For i := 1 To 5 Do Writeln ('I Love Dinda’);
END.

Penjelasan : Berati statemen I Love Dinda akan diulang sebanyak 5 kali yaitu dengan menghitung nilai i dari i ke 1 sampai nilai i terakhir yaitu i ke 5.

# Contoh dengan menggunakan blok statement:
cara penulisannya dengan pada awal blok diawali dengan Begin dan
pada akhir blok diakhiri dengan End;
Uses Crt;
Var
i : Integer;
Begin
For i:= 1 To 10 Do
Begin
Writeln ('I Love Dinda'); { blok statement }
End;
End.

# Perulangan For negatif
Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke
kecil.
Statement yang digunakan adalah For-DownTo-Do

contoh :
Uses Crt;
Var
i : Integer;
Begin
For i := 10 DownTo 1 Do Write (i:3);
End.

# Perulangan For tersarang
Perulangan For tersarang adalah perulangan For yang berada pada perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh :
Var
a,b : Integer;
Begin
For a := 1 To 3 Do
Begin
For b := 1 To 2 Do Write (a :4,b:2);
Writeln;
End;
End.

# Perulangan While - Do
Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Perulangan While – Do tidak dilakukan jika kondisi tidak terpenuhi.
Contoh :
Uses Crt;
Var i : Integer;
Begin
i := 0;
While < 5 do
Begin
Write (i:3);
Inc (i); { sama dengan i:=i+1 }
End;
End.



# Perulangan While – Do tersarang
Perulangan While – Do tersarang (nested While - Do) merupakan perulangan While – Do yang satu di dalam perulangan While – Do yang lainnya.
Contoh :
Uses Crt;
Var
a, b : Integer;
Begin
ClrScr;
a:=1;
b:=1;
While a < 4 Do{ loop selama a masih lebih kecil dari 4 }
Begin
a := a+1;
While b < 3 Do{ loop selama b masih lebih kecil dari 3 }
Begin
Write (a:3,b:2);
b:=b+1;
End;
End;
Readln;
End.

# Perulangan Repeat - Until.
Repeat – Until digunakan untuk mengulang statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak terpenuhi. Sintak dari statement ini adalah :
Contoh :
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.

# Repeat – Until tersarang
Repeat – Until tersarang adalah suatu perulangan Repeat - Until yang satu berada didalam perulangan Repeat – Until yang lainnya.
Contoh :
Var
a,b,c : Real;
Begin
Writeln('========================================');
Writeln(' sisi A sisi B Sisi C ');
Writeln (' =======================================');
a:= 1;
Repeat { perulangan luar }
b := 0;
Repeat{ perulangan dalam }
c:=Sqrt (a*a+b*b);
Writeln (a:6:2, b:9:2, c:9:2);
b:=b+5;
Until b>25; { berhenti jika b lebih besar dari 5 untuk
perulangan dalam }
a:=a+1;
Until a>3; { berhenti jika a lebih besar dari 3 untuk
perulangan luar }
Writeln(' =======================================');
End.
# Percabangan
# If - Then
Bentuk struktur If – Then adalah sebagai berikut :
If Kondisi Then Statement
Ungkapan adalah kondisi yang diseleksi oleh statement If. Bila kondisi yang diseleksi terpenuhi, maka statement yang mengikuti Then akan diproses, sebaliknya bila kondisi tidak terpenuhi, maka yang akan diproses statement berikutnya.
Misalnya :
If Pilihan = 2 Then
Begin{ jika kondisi terpenuhi, Yaitu jika pilihan = 2 }
......
......
End
Else{ jika kondisi tidak terpenuhi, yaitu jika pilhan
tidak sama dengan 2}
Begin
.......
.......
End;

Contoh Program :
Uses Crt;
Var
Nilai : Real;
Begin
Write ('Jumlah Nilai :');
Readln (nilai); { Pemasukan data }
If nilai > 60 Then { seleksi kondisi variabel nilai }
Writeln('Lulus') { Dilaksanakan jika nilai lebih besar dari 60 }
Else
Writeln('Tidak lulus'); { Dilaksanakan jika variabel nilai lebih kecil dari 60 }
End.
Hasil :
Jika kita Memasukan 40 pada varibel nilai, Maka program diatas akan mencetak Tidak lulus.

# If tersarang (nested If)
Struktur If tersarang merupakan bentuk dari suatu statement If berada di dalam lingkungan statemen If yang lainya. Bentuk statement If tersarang sebagai berikut :
If kodisi1 Then atau If Kondisi1 Then
If kondisi2 Then Begin
statemen1 IF kondisi2 Then
Else statemen1
statemen2; Else
statemen2
End;
# Case - Of
Struktur Case – Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector.
Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainya tidak. Bentuk struktur dari Case - Of:
Case Variabel Kondisi Of
Case – Label 1; Statement 1;
Case – Label 2; Statement 2;
Case – Label 3; Statement 3;
Case – Label 4; Statement 4;
........
........
Case – Label n ; Statement n ;
End ; { end dari case }
Daftar Case label dapat berupa konstanta, range dari konstanta yang bukan bertipe real. Contoh program ;
Program nilai;
Var
nil : Char ;
Begin
Write ('Nilai Numerik yang didapat :');
Readln (nil);
Case nil Of
'A': Writeln ('Sangat Baik’);
'B': Writeln('Baik’);
'C': Writeln('Cukup');
'D': Writeln('Kurang');
'E': Writeln('Sangat Kurang');
End;
End.

Program Koversi_nilai;
uses crt;
var
nilai :integer;
lagi :char;
begin
repeat
clrscr;
Write('Masukkan nilai :');readln(nilai);
case nilai of
81..100 :writeln('A');
61..80 :writeln('B');
41..60 :writeln('C');
21..40 :writeln('D');
0..20 :writeln('E');
else
writeln('Salah nilai');
end;
write('Lagi.....[Y/T]');lagi:=upcase(readkey);
writeln(lagi);
until lagi <> 'Y';
end.



 Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.
Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.
Array 1 Dimensi
--> hanya mempunyai 1 tempat penyimpanan untuk indexnya.

uses crt;
var
a: array [1..3] of integer;

ini berarti bahwa a adalah sebuah array yang memiliki 3 index atau array a memiliki 3 data didalamnya. Data dalam array a dapat disesuaikan sebagaimana kebutuhan kita.

Array 2 Dimensi
--> mempunyai 2 tempat penyimpanan untuk indexnya

uses crt;
var
a : array [1..3,1..3] of integer;

ini berarti bahwa array a memiliki 9 index yaitu 1.1, 1.2, 1.3 ... 3.2, 3.3. Bentuk array seperti ini kerap kita jumpai pada pemrograman matriks baik itu penjumlahan, ataupun perkalian.

Ok, untuk penggunaan array secara real pada program adalah sebagai berikut:

uses crt;
var
a:array [1..3] of integer;
k,l:integer;
begin
clrscr;
for k:=1 to 3 do
begin
writeln('Masukkan Angka:'); readln (a[k]);
end;
for k:= 1 to 3 do
begin
l:= l + a[k];
end;
writeln('Jumlah dari Semua Angka: ',l);
readln;
end.
var
  a : array[1..10] of byte;
 
begin
  a[1]:=10;
  a[2]:=15;
  a[3]:=a[1]+a[2];
  writeln(a[1]);
  writeln(a[2]);
  writeln(a[3]);
end.

Program diatas akan menjumlahkan seluruh index dari array a yang kemudian dinilai sebagai l.
LAIN-LAIN
program kalkulator;
uses crt;
var n1,n2,p,h:real;
begin
writeln('Program Kalkulator');
writeln('==================');
write('Masukkan Nilai Pertama= ');readln(n1);
write('Masukkan Nilai Kedua= ');readln(n2);
writeln('Pilih Operasi:');
writeln('1 --> Perkalian');
writeln('2 --> Pembagian');
writeln('3 --> Penjumlahan');
writeln('4 --> Pengurangan');
write('Pilihan anda [1..4]= ');readln(p);
if p=1 then h:=n1*n2;
if p=2 then h:=n1/n2;
if p=3 then h:=n1+n2;
if p=4 then h:=n1-n2;
writeln('Hasil Operasinya Adalah= ',h:0:2);
readln;
end.

Program Menghitung_Volume_Luas_Permukaan_Bola;
uses wincrt;
Var Luas,R,V :Real;
Begin
writeln('Program Menghitung_Volume_Luas_Permukaan_Bola');
write('Jari-jari = '); {Masukan Nilai Jari2}
readln(R);
Luas:=4*pi*R*R;
V:=4/3*pi*R*R*R;
writeln('Jadi Volumenya = ',V:0:2);
writeln('Jadi Luasnya = ',Luas:0:2);
readln;
End.
 
uses crt;
var
  c : char;
 
begin
  write('Yes or no (Y/N) ?');
  repeat
    c:=upcase(readkey);
  until c in ['Y','N'];
end.
uses crt;
var
   F : text;
   s : string;
begin
   clrscr;
   write('Input file name to read : '); readln(s);
   assign(F,s);                { associate it }
   reset(F);                   { open it      }
   while not EOF(F) do         { read it until it's done }
   begin
     readln(F,s);
     writeln(s);
   end;
   close(F);                   { close it }
end.
uses crt;
var
   F : text;
   s : string;
begin
   clrscr;
   write('Input file name to read : '); readln(s);
   assign(F,s);                { associate it }
 
   {$I-}
   reset(F);                   { open it      }
   {$I+}
   if IOresult<>0 then
   begin
     writeln('Error encountered in reading file ',s);
     halt;
   end;
 
   while not EOF(F) do         { read it until it's done }
   begin
     readln(F,s);
     writeln(s);
   end;
   close(F);                   { close it }
end.



                                                     

Tidak ada komentar:

Posting Komentar