Powered By Blogger
www.skinpacks.com

April 27, 2012

Modul Pemrograman Pascal

Pengenalan Pascal
Bahasa  Pascal  dikembangkan  pada  awal  tahun 1970-an  oleh  ilmuwan  komputer  Eropa,  Niklaus Wirth. Nama Pascal diambil dari nama ahli matematika Blaise Pascal yang menemukan mesin hitung  mekanik  pertama.  Sekarang  Pascal digunakan baik untuk keperluan ilmiah maupun aplikasi bisnis. Sampai saat ini, bahasa Pascal juga digunakan pada sekolah dan universitas di Indoensia untuk belajar pemrograman dasar.

Pascal  sebagai  salah  satu  bahasa  tingkat  tinggi (high-level language) untuk dapat dapat dikenali oleh compute harus   diterjemahkan   menjadi   bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yang disebut dengan kompilator (compiler). Kompilator Pascal adalah sebuah software, bukan perangkat keras (hardware). Kompilator adalah progam yang disimpan pada file dalam disk.

Komentar
Jika suatu program dikompilasi, komentar akan dilewati atau diabaikan oleh kompilator. Komentar dalam  Pascal  dituliskan  dengamengapitnya dengan kurung kurawal buka dan tutup, {komentar} atau (*komentar*)

Reserved Word
Reserved Word adalah kata-kata yang sudah mempunyai arti khusus dalam bahasa pemrograman atau kata kunci. Contoh: program, begin, end dan lain-lain. Ada banyak sekali reserved word dalam Pascal, anda dapat mencari dalam buku atau referensi lain.

Identifier
Identifier adalah nama yang diberikan oleh programmer. Identifier tidak hanya untuk menamai program tetapi juga untuk objek-objek Pascal yang lain, seperti variabel dan konstanta.

Aturan penamaan identifier:
1.  Karakte pertam identifier   harus   berupa huruf
2.  Karakter selanjutnya dapat gabungan antara huruf dan angka
3.  Tidak berupa reserved word atau kata kunci dalam Pascal
4.  Tidak boleh dipisahkan dengan spasi, tidak boleh mengandung tanda -‘ atau ‘&

Contoh identifier yang tidak diperbolehkan:
6jumlah, 7alamat dimulai dengan angka
i/6, j%, k$ mengandung selain huruf dan angka tulis jumlah menggunakan spasi
begin, do, while reserved word

Identifier dalam Pascal tidak case sensitive, artinya huruf  besar  dan  kecil  tidak  dibedakan.  Identifier
jumlah, JUMLAH dan Jumlah’ dianggap sama.
Perintah write dan writeln
Perintah writeln merupakan kependekan dari write line.  Setelah  menuliskan  parameternya  di  layar, makkursor  penulisan  akan  langsung  pindah  ke baris di bawahnya atau ganti baris. Perintah write hanya menuliskan parameternya saja tanpa pindah baris.

Contoh penggunaan perintah write dan writeln:
write (‘Selamat Belajar’);
writeln (‘Pascal’);
write (‘Semoga Sukses);
Dalam layar akan ditampilkan: Selamat Belajar Pascal
Semoga Sukses

Kesalahan Pada Program
Ada dua jenis kesalahan yang mungkin terjadi pada program, yaitu:
1.  Kesalahan sintaks/tatabahasa (syntax error)
2.  Kesalahan logika (logical error)

Kesalahan   sintaks   menyebabkan   program   tidak dapat dikompilasi, sedangkan apabila terdapat kesalahan logika dalam program, program dapat dikompilasi, tetapi jika dijalankan akan menghasilkan keluaran yang salah.

Gaya Penulisan
Gaya penulisan dalam Pascal bukan line-oriented, yaitu setiap perintah yang berbeda harus ganti baris penulisan.

Pendefinisian Variabel
Kata kunci var digunakan untuk menandai awal pendefinisian variabel yang digunakan dalam program. Variabel digunakan untuk menyimpan data yang digunakan dalam program.

Perintah read dan readln
Perintah read dan readln akan menangkap masukan yang diberikan melalui keyboard dan menyimpannya disebuah memori computer dengan nama sesuai dengan parameternya.

Perbedaan perintah read dan readln sama dengan perbedaan perintah write dan writeln. Perintah read akan membaca masukan dari keyboard tanpa memindahkan posisi kursor setelah pembacaan, sedangkan perintah readln akan membaca masukan sekaligus memindahkan posisi kursor.
Tipe, Operator dan Ekspresi
Tipe  digunakan  untumendefinisikan  objek  data yang akan dimanipulasi dalam sebuah program. Objek data yang akan dimanipulasi disebut variabel dan konstanta.

Variabel adalah objek data yang nilainya dapat diubah-ubah dan konstanta adalah objek data yang nilainya tidak dapat diubah dan hanya dapat digunakan atau diakses.

Contoh:
X + 5 dan 2*8 adalah sebuah ekspresi aritmatik.
X adalah sebuah variabel, 5, 2, 8 adalah konstanta,
+ dan * adalah operator.

Tipe  Dasar

integer
Tipe integer  terdiri dari bilangan bulat dalam rentang tertentu.

Operator Integer
Operator
Arti
+
Penjumlahan
-
Pengurangan
*
Perkalian
DIV
Division, hasil pembagian bulat
MOD
Modulo, sisa pembagian

real
Tipe real terdiri dari bilangan pecahan dalam rentang tertentu.

Operator
Arti
+
Penjumlahan
-
Pengurangan
*
Perkalian
/
Pembagian

boolean
Tipe  Boolean  hanya  terdiri  dari  dua  harga  yaitu TRUE dan FALSE. Ekspresi TRUE atau FALSE disebut   ekspresi   Boolean.   Terdapat   dua   jenis operator yang dapat digunakan dalam ekspresi Boolean, yaitu operator Boolean dan operator relasional. Operator Boolean terdiri dari AND, OR dan NOT.

Tabel Kebenaran Operator Boolean
p
q
p AND q
p OR q
NOT p
TRUE
TRUE



TRUE
FALSE



FALSE
TRUE



FALSE
FALSE




Operator Relasional
Operator
Arti
=
Sama dengan
< 
Kurang dari
<=
Kurang dari sama dengan
> 
Lebih dari
>=
Lebih dari sama dengan
<> 
Tidak sama dengan

 


                                                                                   





Membuat Program Menggunakan Bahasa Pemrograman Pascal
Bagian-bagian utama dari program Pascal terdiri dari 3 bagian yaitu:
1. Kepala program
2. Deklarasi variabel
3. Badan program

Kepala  program  digunakan  untuk  memberi  judul pada program yang akan dibuat. Kepala program selalu diawali dengan kata Program. Deklarasi variabel digunakan untuk mendeklarasikan semua variabel yang digunakan dalam program. Deklarasi variabel diawali dengan kata var. Badan program berisi statement-statement yang berhubungan dengan program yang akan dibuat. Setiap statement dalam Pascal  diakhiri  dengan  tanda  ; .  Badan  program selalu diawali dengan kata begin dan diakhiri dengan kata End. Jangan lupa untuk menambahkan tanda . ’ setelah End.

Tipe Data Integer
Pada pertemuan kali ini akan dibahas tipe data yang
cakupannya lebih sempit dari tipe data real, yaitu tipe data integer. Tipe integer terdiri dari bilangan bulat dalam rentang tertentu. Tipe integer terdiri atas:

Tipe Data
Jangkauan Nilai
Shortint
- 128 /d 127
Integer
-32.768 s/d 32.767
Longint
-2.147.483.648 s/d
2.147.483.647
Byte
0 s/d 255
Word
0 s/d 65.535

 
                            


Operator operator yang terdapat dalam tipe integer:

Operator
Arti
Contoh
Hasil
+
Penjumlahan
2+2
4
-
Pengurangan
2-2

*
Perkalian
2*2
0
div
Hasil pembagian bulat
5 div 2
2
mod
Sisa pembagian
5 mod 2
1

Tipe Data Boolean
Tipe data boolean hanya terdiri dari dua nilai, yaitu true atau false. Dua operator yang digunakan dalam tipe data ini  adalah  operator  boolean (AND,  OR  dan  NOT)  dan operator relasional (= , < , <=,  >= , >, <>). Nilai kebenaran AND, OR dan NOT seperti nilai kebenaran dalam logika matematika.

Prioritas pengerjaan operator dalam Turbo Pascal:
1.   NOT
2.   * / DIV MOD
3.   + - OR
4.   =, <>, <, >, <=, >=

Pernyataan If

Bentuk umum:
if ekspresi/kondisi then pernyataan_1 else pernyataan_2;

Contoh pernyataan if:
if nilai >= 65 then writeln('Tuntas')
else writeln('Tidak Tuntas');

nilai >= 65 adalah suatu ekspresi aritmatik, jika ekspresi itu bernilai true maka ditampilkan Tuntas, tetapi jika bernilai false maka ditampilkan Tidak Tuntas.

Perlu diperhatikan bahwa dalam Pascal, sebelum else
tidak perlu ditambahkan tanda ';'

Contoh dalam program:
Program ketuntasan_1;
uses crt;
Var nilai:real; Begin
clrscr;
writeln('Masukkaan nilai Anda = ');readln(nilai);
if nilai >= 65 then writeln('Tuntas')
else
writeln('Tidak Tuntas');
readln; End.

menampilkan lebih dari satu komentar/pernyatan dalam tampilan
Program ketuntasan_2;
uses crt;
Var nilai:real; Begin
clrscr;
writeln('Masukkaan nilai Anda = ');readln(nilai);
if nilai >= 65 then Begin writeln('Tuntas');
writeln('Selamat Anda Berhasil') End
else
Begin
writeln('Tidak Tuntas'); writeln('Selamat Menempuh Remidi'); End;
readln; End.

if bersarang
Program di atas hanyalah untuk satu pernyataan if saja, artinya jika ekspresi yang pertama bernilai True, maka hanya akan menghasilkan satu konsekuensi lain saja. Pernyataan if  juga dapat digunakan untuk menghasilkan lebih dari satu konsekuensi.

Contoh:
if bil > 0 then writeln('Bilangan Positif')
else if bil < 0 then writeln('Bilangan Negatif')
else writeln('Bilangan itu Nol');

Penyataan di atas sebenarnya juga dapat ditulis:
if bil > 0 then writeln('Bilangan Positif');
if bil < 0 then writeln('Bilangan Negatif');
if bil = 0 then writeln('Bilangan itu Nol');

Contoh dalam Program:
Program Bilangan;
uses crt; Var bil:real; Begin
clrscr;
writeln('Masukkan sembarang bilangan = ');readln(bil);
if bil > 0 then writeln('Bilangan Positif') else if bil < 0 then writeln('Bilangan Negatif')
else writeln('Bilangan itu Nol');
readln; End.

Program GanjilGenap:
uses crt;
Var bil:integer;
{Tipe data yang digunakan adalah integer karena bilangan yang genap atau ganjil adalah bilangan bulat dan bukan bilangan real}
Begin clrscr;
writeln('Masukkan bilangan bulat sembarang');readln(bil);
if bil mod 2 = 0 then
writeln('Bilangan ',bil,'bilangan genap')
else
writeln('Bilangan ',bil,'bilangan ganjil');
readln; End.

Statement Case
Berbeda dengan statement IF yang digunakan untuk memilih dari dua kondisi berbeda berdasar ekspresi boolean,  statement  case  digunakan untuk  memilih  jika terdapat  lebih  dari  dua  kondisi  yang  setiapnya memerlukan penanganan berbeda.

Bentuk umum: case variabel of konstanta1 : statement1; konstanta2 : statement2; konstanta3 : statement3;
...
konstantaN : statementN;
end;

Catatan:
Variabel harus bertipe ordinal (integer atau char) dan tidak boleh bertipe real

Contoh_1:
Program asosiasihari;
uses crt;
var harike:integer; Begin
clrscr;
write('Hari ke ... = ');readln(harike);
case harike of
1 : writeln('Minggu');
2 : writeln('Senin');
3 : writeln('Selasa');
4 : writeln('Rabu');
5 : writeln('Kamis');
6 : writeln('Jumat');
7 : writeln('Sabtu');
end; readln; End.

Contoh_2: Program nilaiujian; uses crt;
var na:integer; Begin
clrscr; write('Nilai angka [0..100]: ');
readln(na);
case na of
86..100 : writeln('Nilai A');
71..85 : writeln('Nilai B');
61..70 : writeln('Nilai C');
51..60 : writeln('Nilai D');
0..50  : writeln('Nila1 E');
end; readln; End.

Contoh_3:
Program penentuankarakter;
uses crt;
var ch:char; Begin
clrscr;
write('Masukkan sembarang karakter ');readln(ch);
case ch of
'A'..'Z','a'..'z': writeln('Huruf');
'0'..'9'        : writeln('Angka');
else
writeln('karakter khusus');
end; readln; End.

Perulangan
Terdapat tiga macam statemen perulangan (repetition) yang dapat digunakan, yaitu: statemen for, while dan repeat. Masing-masing digunakan pada jenis perulangan yang berbeda, meski untuk kasus sebuah perulangan dapat diganti dengan statemen perulangan yang lain.

statemen/peryataan for
Pernyataan for digunakan untuk perulangan yang telah diketahui berapa kali akan dilakukan, misalnya: menjumlahkan bilangan 1 sampai dengan 1000.
Bentuk umum:
for variabel := ekspresi1 to ekspresi2 do statemen

atau:
for variabel := ekspresi1 downto ekspresi2 do statemen

Catatan:
Jika ekspresi1 < ekspresi 2 gunakan bentuk pertama. Jika ekspresi1 > ekspresi 2 gunakan bentuk kedua.
Jika ekspresi1 = ekspresi 2 gunakan bentuk pertama atau kedua.

Contoh_1:
Program deretangka1;
uses crt;
var i,batas:integer; Begin
write('Masukkan integer positif');
readln(batas);
for i:=1 to batas do writeln(i);
readln; End.

Contoh_2:
Program deretangka2;
uses crt;
var i,batas:integer; Begin
write('Masukkan integer positif');
readln(batas);
for i:=1 downto batas do writeln(i); readln; End.

Contoh_3:
Program tulis kelipatan3;
uses crt;
var i,batas:integer; Begin
clrscr;
write('Masukkan integer positif :');
readln(batas);
for i:=1 to batas do
if (i mod 3 = 0) then writeln(i);
readln; End.

for bersarang
Pada  masalah  tertentu  ada  kemungkinan FOR  berada dalam  FOR  yang  lain.  Bentuk  seperti ini  disebut  FOR bersarang (nested for).

Contoh_4: Program bintang; uses crt;
var baris,kolom:integer; Begin
clrcr;
for baris:=1 to 8 do begin
for kolom:=1 to baris do write('*'):
writeln; end; readln;
End.

statemen/peryataan while
Pernyataan while digunakan untuk perulangan yang banyaknya perulangan tidak  diketahui. Peryataan while mirip dengan peryataan if yang melakukan pemeriksaan ekspresi boolean sebelum sebuah atau serangkaian peryataan dilakukan.

Bentuk umum: while kondisi do statemen

Kondisi adalah ekspresi boolean. Jika ekspresi bernilai true  statemen  dijalankan  dan  diperikskembali,  dan keluar dari perulangan jika bernilai false.

Contoh_1:
Program deretangka_1;
uses crt;
var i:integer; Begin
clrscr;
i:=1;
while i <= 10 do begin writeln(i);
i:=i+1; end; readln; End.


Contoh_2:
Program deretangka_2;
uses crt;
var i:integer; Begin
clrscr;
i:=10;
while i > 0 do begin writeln(i);
i:=i-1; end; readln; End.


while bersarang
Contoh_3: Program bintang2; uses crt;
var baris, kolom, jumbaris:integer;
Begin clrscr;
write('Jumlah baris : ');readln(jumbaris);
baris:=1;
while baris <= jumbaris do begin
write('*' :jumbaris+1-baris);
kolom:=2;
while kolom <= (2*baris-1) do begin
write('*'); kolom:=kolom+1; end;
writeln; baris:=baris+1; end;
readln;
End.

statemen/peryataan repeat
Peryataan Repeat biasa diapaki untuk menangani perulangan  yang  jumlahnya  belum  pasti,  tetapi  paling tidak dikerjakan sekali. Pada while, ada kemungkinan bagian pernyataan tidak dijalankan sama sekali.

Bentuk umum repeat:
repeat peryataan_1; pernyataan_2;
... pernyataan_n; until kondisi Tampak bahwa pengulangan justru dilakukan selama kondisi bernilai salah/false. Jadi merupakan kebalikan dari pernyataan while. Perbedaan lain terhadap while adalah, bahwa pemeriksaan
terhadap kondisi pada repeat dilakukan belakangan, setelah bagian pernyataan antara repeat dan until.

Contoh_1:
Program deretangka_1;
uses crt;
var i:integer; Begin
clrscr; i:=1; repeat
writeln(i);
i:=i+1; until i > 10; readln;
End.

Contoh_2:
Program sudahberdoa;
uses crt;
var jawab:char; Begin
repeat
write('Anda sudah berdoa ? (s/b)');
readln(jawab);
until (jawab ='s') or (jawab ='b');
if jawab ='s' then write('Bagus')
else
write('Berdoa mendekatkan diri pada Tuhan');
readln; End.

Contoh_3:
Program tebakangka;
uses crt;
var tebakan,angka:integer;
sama:boolean; Begin
clrscr; randomize; angka:=random(100); sama:=false;
repeat
write('Angka tebakan :');readln(tebakan);
if (tebakan < angka) then writeln('Tebakan terlalu kecil')
else begin
if (tebakan > angka) then writeln('Tebakan terlalu besar') else
begin
writeln('Tebakan benar');
sama:=true;
end;
end;
until (sama=true);
readln; End.

0 komentar:

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More