Pengenalan Pascal
Bahasa Pascal dikembangkan pada awal tahun 1970-an oleh ilmuwan komputer Eropa, Niklaus Wirth. Nama Pascal diambil dari namaahli 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 computer harus diterjemahkan menjadi bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yangdisebut 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 dengan mengapitnya 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. Karakter pertama 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, maka kursor 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 yangdigunakan dalam program.
Perintah read dan readln
Perintah read dan readln akan menangkap masukan yangdiberikan 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 akanmembaca masukan dari keyboard tanpa memindahkan posisi kursor setelah pembacaan, sedangkan perintah readln akan membaca masukan sekaligus memindahkanposisi kursor.
Tipe, Operator dan Ekspresi
Tipe digunakan untuk mendefinisikan objek data yang akan dimanipulasi dalam sebuah program. Objek data yang akan dimanipulasi disebut variabel dankonstanta.
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 sebuahvariabel, 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, ORdan 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
|
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: | ||||||||||||||
| ||||||||||||||
| ||||||||||||||
|
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 ataufalse. 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 > 0then writeln('Bilangan Positif')
else if bil < 0then 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 > 0then 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.
StatementCase
Berbeda dengan statement IF yang digunakan untuk memilih daridua 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 dapatdiganti dengan statemen perulangan yang lain.
statemen/peryataan for
Pernyataan for digunakan untukperulangan 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 diperiksa kembali, 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; usescrt;
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.