Rabu, 17 Maret 2010

Pascal

Pengantar dalam Bahasa Pemrograman
Turbo Pascal
Pengenalan Pascal
Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman tingkat tinggi menandakan bahwa Pascal banyak menggunakan bahasa manusia dalam penulisan sintaksnya.
Beberapa bahasa pemrograman tingkat tinggi lainnya yang ada yaitu BASIC dan DELPHI. Sedangkan bahasa pemrograman tingkat rendah yaitu bahasa pemrograman yang masih banyak menggunakan tanda-tanda sehingga bahasa ini cenderung lebih “kotor”. Beberapa bahasa pemrograman tingkat rendah yang sering digunakan adalah C, C++ dan Java. Mari kita melihat perbedaan antara bahasa Pascal dan C untuk pembanding dalam sintaks yang digunakan:

PASCAL
uses crt;
var a : integer;
begin
clrscr;
writeln('Masukkan nilai antara 0 sampai 100 : ');
readln(a);
if a > 5 then begin
writeln('Nilai a lebih besar dari 5');
writeln('Tekan sembarang tombol untuk keluar');
end
else begin
writeln('Nilai a lebih kecil atau sama dengan 5');
writeln('Tekan sembarang tombol untuk keluar');
end;
readkey;
end.
C
#include
#include
int a;
void main() {
clrscr();
printf(“Masukkan nilai antara 0 sampai 100 : “);
scanf(“%d”, &a);
if (a > 5) {
printf(“Nilai a lebih besar dari 5\nTekan sembarang tombol untuk keluar”);
} else {
printf(“Nilai a lebih kecil atau sama dengan 5\nTekan sembarang tombol
untuk keluar”);
}
getch();
}

Dua penggalan program di atas akan menghasilkan program yang sama persis yaitu meminta sebuah input berupa angka antara 0 sampai 100. Kemudian sebuah tulisan akan muncul tergantung dari nilai input yang dimasukkan. Dari 2 bahasa tersebut, dapat dilihat bahwa dalam bahasa Pascal lebih sederhana dan lebih banyak menggunakan bahasa manusia. Sedangkan dalam bahasa C, lebih banyak penggunaan simbol.
Turbo Pascal dan C merupakan program compiler. Compiler sendiri berarti program yang menerjemahkan tulisan berupa kode program menjadi bahasa mesin yang dapat dimengerti oleh komputer. Proses yang dilakukan disebut compile atau compiling. Suatu program dapat di-compile dengan menggunakan kombinasi tombol Alt + F9. Sedangkan untuk menjalankan program, tombol yang dapat digunakan adalah Ctrl + F9. Bila selama proses compile terdapat error atau kesalahan dalam penulisan program, maka Turbo Pascal atau C akan memberitahukan letak kesalahan tersebut sehingga pengguna dapat memperbaikinya di halaman editor.
Turbo Pascal merupakan bahasa yang case insensitive yang berarti penulisan dalam huruf kapital maupun huruf kecil tidak dipermasalahkan. Akan tetapi pada C yang case sensitive, maka penulisan huruf kapital atau kecil harus benar-benar diperhatikan. Untuk pembahasan berikutnya, kita akan menggunakan program Turbo Pascal dengan bahasa pemrograman Pascal sebagai pengantar contoh. Perlu diingat bahwa bila anda telah menguasai satu bahasa pemrograman, maka anda akan dengan cukup mudah berpindah ke bahasa pemrograman lainnya selama anda memiliki dasar algoritma dan logika yang baik. Oleh sebab itu, pada pembahasan yang selanjutnya, yang akan ditekankan adalah algoritma dan logika, bukan sintaks dan function / procedure yang terdapat dalam Turbo Pascal. Function atau procedure yang telah disediakan oleh Turbo Pascal dapat anda pelajari sendiri penggunaannya melalui Help yang terdapat di Turbo Pascal.

Struktur kode
Pada setiap kode pemrograman, terdapat aturan yang harus dipatuhi agar program
tersebut dapat menjalankan (compile) suatu program dengan baik tanpa error. Struktur utama pada Turbo Pascal adalah sebagai berikut.
program ... ; {deklarasi nama program}
uses ... ; {deklarasi penggunaan unit}
label ... ; {deklarasi label}
const ... ; {deklarasi konstant}
type ... ; {deklarasi tipe data}
var ... ; {deklarasi variabel}
procedure ... ; {deklarasi procedure}
function ... ; {deklarasi function}
begin
statement; {program ditulis di sini}
...
end.
Tulisan yang diapit oleh tanda kurung kurawal {} adalah comment dan tidak dianggap sebagai bagian program ketika di-compile oleh compiler. Pada baris pertama, anda dapat mendeklrasikan nama program. Umumnya untuk mengefisiensikan pengerjaan suatu program (khususnya pada lomba), baris pertama dapat diacuhkan atau dilewatkan. Baris kedua yaitu “USES” merupakan deklarasi penggunaan unit dalam Turbo Pascal. Unit merupakan bagian dari program yang berisi kumpulan function dan procedure. Contoh fungsi yang banyak digunakan adalah CRT, dengan function yang terdapat di dalamnya yaitu clrscr dan readkey. Anda dapat menjalankan suatu program tanpa menggunakan USES, akan tetapi anda hanya dapat menggunakan function dan procedure yang sudah terkandung secara native dalam Turbo Pascal. Contohnya anda tidak dapat menggunakan clrscr atau readkey tanpa CRT, tetapi bisa menggunakan writeln dan readln tanpa CRT tersebut karena CRT merupakan unit untuk pengolahan output ke layar dan input dari keyboard.
Label digunakan bersamaan dengan keyword GOTO. GOTO sendiri jarang digunakan karena tidak efisien dan cenderung membingungkan penggunanya. Const digunakan untuk mendeklarasikan suatu konstan. Konstan merupakan suatu keyword yang memiliki nilai tertentu. Misalnya bila anda mendeklrasikan PI sebagai 3.14, maka ketika anda menggunakan PI pada baris program, PI akan digantikan dengan 3.14. Type digunakan untuk mendeklarasikan suatu tipe data baru dari tipe data yang sudah ada sebelumnya. Berguna ketika harus menggunakan pointer.
Var digunakan untuk mendeklarasikan suatu variabel. Variabel yang dideklarasikan harus memiliki tipe data tertentu. Penjelasan dalam penggunaan variabel akan dibahas di bagian berikutnya.
Procedure dan function merupakan sub-program. Procedure tidak mengembalikan nilai, sedangkan function mengembalikan nilai. Procedure dan function mengandung suatu penggalan program yang dapat dipanggil oleh program utama atau sub-program yang lainnya. Bila anda belum mengerti maksud dari “mengembalikan nilai” maka anda dapat membayangkan bahwa hasil dari function dapat dimasukkan ke dalam suatu variabel atau menghasilkan suatu nilai, sedangkan procedure hanya menjalankan suatu potongan program. Contoh procedure adalah writeln dan clrscr karena kedua procedure tersebut tidak mengembalikan nilai apapun. Sedangkan contoh function adalah “sqrt” yang akan mengembalikan nilai berupa akar kuadrat dari bilangan yang dimasukkan. Sebagai informasi: “procedure” adalah istilah yang digunakan pada Pascal. Pada bahasa pemrograman yang lainnya, biasa disebut “function yang tidak mengembalikan nilai” atau “void function”. Program utama yang akan dijalankan oleh Turbo Pascal dapat ditulis diantara BEGIN sampai dengan END.

Variabel dan tipe data
Terdapat beberapa tipe data yang dapat dipergunakan dalam suatu variabel, di antaranya adalah (beserta range yang dapat diterima):
Integer
Integer (-2^15 sampai 2^15), word (0 sampai 2^16), shortint (-2^7 sampai 2^7), byte (0
sampai 2^7), longint (-2^23 sampai 2^23)
Float / Real
Real (6 byte), singel (4 byte), double (8 byte), extended (10 byte), comp (8 byte)
Boolean
Bernilai TRUE atau FALSE (1 atau 0)
Char
Merupakan integer yang telah dikonversikan ke kode ASCII.
Array
Merupakan deretan suatu variabel yang bertipe data sama. Pembahasan yang lebih lengkap akan terdapat di bagian tersendiri. String merupakan array dari char. Algoritma dasar Pada dasarnya terdapat beberapa algoritma yang harus dikuasai dalam pemrograman yaitu:
1. Operator
2. Input/output: Bagaimana meminta suatu input dan menampilkan suatu output.
3. Selection: Bagaimana membuat program yang dapat memilih bagian yang akan
dijalankan.
4. Repetition / looping: Bagaimana membuat program yang dapat mengulang
suatu bagian program yang dijalankan.

Rangkuman operator
Dalam bahasa pemrograman, sebuah proses dibagi menjadi 2 yaitu operand dan operator. Operand dapat berupa variabel atau nilai. Sedangkan operator merupakan tanda-tanda yang dipakai untuk mengolah. Terdapat banyak jenis operator, tapi 4 jenis yang perlu dipelajari untuk saat ini adalah assignment operator, arithmatic operator, comparison operator, logical operator. Assignment operator ditandai dengan :=, dan digunakan untuk memberi nilai ke suatu variabel.
Arithmatic operator ditandai dengan *, /, +, -, div, mod. Digunakan untuk pengolahan nilai matematika. Comparison / Relational operator ditandai dengan =, <, >, <=, >=, <>, dan IN.
Digunakan untuk perbandingan 2 nilai sehingga menghasilkan nilai true dan false. Logical operator ditandai dengan AND, OR, XOR dan NOT. Digunakan untuk perbandingan logika antara dua pernyataan atau lebih.
Penting: penggunaan = dan := harus diperhatikan karena penggunaan operator ini
terkadang salah tempat.
Input Output:
Terdapat 2 jenis input/output secara umum yaitu layar/keyboard dan file.
Input menggunakan readln() dan read(). Dalam penggunaan melalui keyboard, kedua procedure ini tidak berbeda. Akan tetapi bila input berasal dari file, kedua procedure akan berbeda dalam mengambil input. Readln() akan mengambil input dalam suatu baris, kemudian cursor akan dipindahkan ke baris selanjutnya. Pada read() akan mengambil input dalam suatu baris, kemudian cursor akan dipindahkan ke sebelah bagian yang diinput. Bila tidak ada lagi bagian yang dapat diinput, maka cursor baru dipindah ke
bawah. Output menggunakan writeln() dan write(). Penggunaannya hampir sama dengan yang read() dan readln(). Pada writeln dan write, keduanya akan berpengaruh baik di file maupun di layar.
Contoh program:
uses crt;
var a,b: integer;
begin
clrscr;
write('Masukkan bilangan antara 1 - 100: ');
readln(a);
b:= a * 2;
writeln('Bilangan yang dimasukkan adalah ', a);
writeln('Bilangan setelah dikali 2 adalah ', b);
readkey;
end.
Rangkuman Selection
Selection merupakan salah satu proses program di samping sequential (pengerjaan secara berurut) dan repetition / looping. Dalam selection, program akan memilih bagian yang akan dijalankan (sehingga terdapat bagian yang tak dijalankan).
Umumnya selection menggunakan IF ... THEN ... ELSE ..., akan tetapi terdapat pula CASE ... OF. Penggunaan IF lebih umum digunakan bila terdapat pilihan yang tidak terlalu banyak dan eksekusi baris program yang panjang.
Blok pertama untuk IF dijalankan bila condition yang digunakan bernilai TRUE,
sedangkan blok ELSE dijalankan bila nilai conditionnya adalah FALSE.
Contoh:
uses crt;
var bil1, bil2: integer;
begin
clrscr;
write('Masukkan bilangan 1 : ');
readln(bil1);
write('Masukkan bilangan 2 : ');
readln(bil2);
if bil1writeln('Bilangan 1 lebih kecil');
end
else begin
writeln('Bilangan 2 lebih kecil');
end
readkey;
end.
Penggunaan IF dapat dikombinasikan sehingga suatu blok IF dapat menampung blok IF yang lainnya (nested selection). Penggunaan IF tidak selalu harus selalu bersama ELSE (simple selection). IF juga dapat digunakan lebih dari satu kondisi setelah ELSE (linear selection) atau pada IF yang sama menggunakan operator logika / logical operator (combined selection). Contohnya adalah seperti baris program di bawah:
if (condition1) then begin
if (condition2) then begin
statement1;
stetement2;
end
else if (condition3) then begin
statement3;
statement4;
end
else begin
statement5;
end;
statement6;
statement7;
if (condition4) then begin
statementx;
statementy;
end;
end
else if (conditionx AND conditiony OR conditionz) begin
statement01;
statement02;
end;
Penting: Ada baiknya setiap blok IF selalu dipisahkan dan ditandai dengan spasi kosong atau menggunakan TAB untuk menghindari kebingungan dalam pembuatan blok statement.
Rangkuman Repetition / Looping
Repetition dapat digunakan untuk menjalankan suatu bagian program secara berulang-ulang sesuai dengan kondisi yang ada. Looping pada Pascal menggunakan beberapa keyword seperti FOR...DO, WHILE...DO dan

REPEAT...UNTIL.
FOR...DO dipergunakan ketika nilai yang akan digunakan sudah diketahui dengan nilai yang ada di dalamnya selalu ditambah atau dikurangi satu ketika mengalami perulangan.

Sintaks:
FOR variable := startindex (TO/DOWNTO) endindex DO BEGIN
statement;
END;
Dari sintaks di atas, terdapat dua jenis perubahan yang dapat digunakan, yaitu TO dan DOWNTO. TO akan menghasilkan nilai incremental atau penambahan satu setiap kali terjadi perulangan. Sedangkan DOWNTO akan menghasilkan nilai decremental atau pengurangan satu setiap kali terjadi perulangan.


Contoh penggunaan FOR...DO:
for i:=1 to 10 do begin
write(i,' ');
end;
for j:=10 downto 1 do begin
write(j,' ');
end;
WHILE...DO dapat digunakan tanpa harus ada perubahan pada nilai kondisi. Selama kondisi masih bernilai TRUE, maka perulangan akan dilakukan terus.



Sintaks:
WHILE (condition) DO BEGIN
statement;
END;
Contoh penggunaan WHILE...DO:
i:=10;
while i>2 do begin
i:=i-2;
writeln(i);
end;

REPEAT...UNTIL berfungsi hampir sama dengan WHILE...DO. Pada REPEAT...UNTIL, looping akan berhenti justru ketika kondisi bernilai TRUE. Selain itu kondisi akan diuji pada akhir perulangan sehingga blok di dalam perulangan akan dijalankan minimal satu kali walaupun kondisi yang ada masih FALSE.


Sintaks:
REPEAT
statement;
UNTIL (condition);
Contoh penggunaan REPEAT...UNTIL:
i:=10;
repeat
i:=i-3;
writeln(i);
until i<1;
Dari penggalan program di atas, dapat dilihat bahwa REPEAT...UNTIL tidak memerlukan BEGIN dan END untuk menjalankan suatu blok statement.
TIPS: Gunakan variabel i, j, k, dan seterusnya untuk menandai indeks perulangan atau
looping.


Sumber: http://etersoul.com/comptius/comptius_programming.pdf

Tidak ada komentar:

Posting Komentar