PASCAL

· Sejarah Pascal

Bahasa Pascal adalah bahasa pemrograman tingkat tinggi yang berorientasi pada segala tujuan, dirancang oleh Professor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosopi terkenal abad 17 dari Perancis.

Struktur Program Pascal
Secara singkat struktur suatu program Pascal adalah sebagai berikut.
1. Judul Program
2. Blok Program
a. Bagian Deklarasi
- Deklarasi label
- Definisi konstanta
- Definisi tipe
- Deklarasi variabel
- Deklarasi prosedur
- Deklarasi fungsi
b. Bagian pernyataan.

Judul program tidak mutlak harus ditulis karena judul program bersifat informatif belaka dan tidak mempengaruhi dalam program itu sendiri.
Bagian deklarasi atau definisi adalah bagian yang digunakan untuk mendefinisikan/mendeklarasikan suatu label, konstanta, jenis data variabel, prosedur dan fungsi.
Bagian pernyataan atau statement adalah bagian yang dipergunakan untuk menulis instruksi yang akan dikerjakan oleh komputer. Bagian ini diawali oleh kata begin dan diakhiri dengan kata end dan diikuti sebuah titik(.). Antara dua pernyataan dipisah oleh simbol semi-colon(;), dan sebuah pernyataan boleh ditulis satu baris atau lebih.

Bentuk umum :

Program …;
Uses …;
Label …;
Const …;
Type …;
Var …;
Procedure …;
Begin;
End;
Function
Begin
End;
Begin
Statement
. . .
End.

Tipe-Tipe Data Pascal
Turbo Pascal telah menyediakan banyak jenis data. Selain tipe bawaan, pemrogram dapat membuat sendiri tipe data baru. Secara garis besar, tipe data dalam Pascal terdiri atas :

1. Tipe data Sederhana
a. Tipe data standar
- integer
- real
- char
- string
- boolean
b. Tipe data didefinisikan pemakai
- enumerated atau scalar type
- subrange type
2. Tipe data terstruktur, terdiri dari :
a. Array
b. Record
c. File
d. Set
3. Tipe data penunjuk (pointer)

Statemen Input/Output
Statemen input/output dalam Pascal menggunakan prosedur standar read/readln dan write/writeln. Untuk pencetakan (output) data yang dicetak dapat berupa konstanta, variabel, atau nilai yang dikembalikan fungsi. Sedangkan jenis yang data yang dapat dicetak adalah bilangan, karakter (ASCII) dan Boolean, sintaknya :

Write(dat1,data2,dat3,…);
Writeln(dat1,data2,dat3,…);

Read/readln hanya dapat menerima data berupa satu atau lebih variabel. Jenis data yang dapat diterima meliputi bilangan bulat, bilangan pecahan, karakter dan string. Sintaknya :

Read(dat1,data2,dat3,…);
Readln(dat1,data2,dat3,…);

Perbedaan read dan redln adalah prosedur readln membaca data sampai ditekan tombol enter. Demikian juga perbedaan write dengan writeln, prosedur writeln akan menempatkan qursor ke baris baru kolom awal.

· TEORI PENUNJANG

Percabangan
Ada 2 macam statemen yang digunakan yaitu: If dan case
Statemen If
Struktur dari statemen If dapat berupa If-then atau If-Then-Else sintak :
If ungkapan Then statemen
Ungkapan adalah kondisi yang akan diseleksi oleh statemen If. Bila kondisi yang diseleksi terpenuhi, maka statemen yang mengikuti then akan diproses, jika kondisi tidak terpenuhi maka yang akan diproses adalah statemen berikutnya.

If kondisi Then statemen1 else statemen2
Statemen1 atau dapat berupa blok statemen akan diproses bilamana kondisi yang diseleksi benar (terpenuhi) sedang statemen2 atau dapat berupa blok statemen akan diproses bilamana kondisi yang diseleksi tidak terpenuhi.

Statemen Case
Statemen Case dapat berbentuk struktur Case-of atau Case-of…Else.
Bentuk dari struktur case-of :

Case ungkapan Of
Daftar case-label1: statemen1;
Daftar case-label2: statemen2;
Daftar case-label3: statemen3;
. . .
Daftar case-labeln : statemenn;
Else
Daftar case-labelx : statemenx;
End;

Bila tidak ada kondisi yang terpenuhi maka statemen yang akan diproses di dalam lingkungan Case-of adalah statemen yang ada di Else.

Perulangan
Bahasa Pascal memberikan 3 jenis struktur program untuk perulangan dan sebuah statemen goto.

Statemen For … to/downto … do …
Pernyataan ini akan melakukan perulangan dari suatu nilai awal sampai nilai akhir yang telah ditentukan. Statemen downto merupakan perulangan negatif dari nilai paling tinggi sampai nilai paling rendah.

Sintak :

Perulangan positif :
For variabel-kontrol := nilai-awal To nilai-akhir Do statemen

Perulangan negatif :
For variabel-kontrol:=nilai-awal Down-to nilai-akhir Do statemen

Variabel-kontrol, nilai-awal, nilai-akhir mempunyai tipe yang sama yaitu bertipe integer.

Klik disini untuk latihan perintah FOR


Statemen While … do …
Pernyataan while akan melakukan pengujian kondisi bila kondisi tersebut terpenuhi, maka proses dilakukan, bila tidak maka proses dilanjutkan ke pernyataan berikutnya.
Sintak :

While ungkapan-logika Do statemen

Statemen Repeat … Until …
Pernyataan repeat akan memproses pernyataannya dulu sampai klausa until tidak terpenuhi. Proses dilakukan selama kondisi salah.
Sintak :

Repeat statemen Until ungkapan

Rekursif
Prosedur atau fungsi dipanggil lewat namanya baik itu di luar sub program maupun di dalam sub program. Pemanggilan prosedur atau fungsi di dalam prosedur atau fungsi itu sendiri disebut dengan rekursif. Struktur rekursif baik dipakai untuk beberapa algoritma yang sulit. Perbandingan rekursif ini dengan perulangan(iterasi) adala pada rekursif setiap pemanggilan akan menggunakan memori.


Procedure dan fungsi
Dalam bahasa pemrograman yang terstruktur, program yang besar dapat dipecah menjadi bagian-bagian yang lebih kecil yang dinamakan dengan subprogram. Biasanya subprogram berisi suatu fungsi atau prosedur tugas tertentu.

Procedure
Suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Prosedur diawali dengan kata cadangan Procedure di dalam bagain deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul dan prosedurnya.

Sintak :

Program judul-program;
Procedure judul-prosedur;
Begin
. . .
End;
Begin
. . .
End.


Function
Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahului dengan titik koma, sebagai berikut.


Function identifier(dafta-parameter) : type;



Contoh :


Function faktorial(var Fak, hasil : integer) : integer;

· TEORI PENUNJANG

Turbo Pascal menyediakan beberapa tipe terstruktur seperti array, record, file dan set. Dalam bab ini yang akan dibahas adalah array, set dan record.

Array
Array merupakan kumpulan data yang sejenis dan disimpan dalam memori komputer. Setiap elemen array dibedakan atas indeksnya. Indeks adalah batas bawah dan batas atas indeks yang menyatakan jumlah anggota dalam array. Beberapa indeks dapat dibuat sekaligus dengan simbol pemisah adalah tanda koma (,), yang berarti dimensi array lebih dari satu. Elemen boleh bertipe apa saja tetapi indek tipenya harus ordinal.

Set
Suatu set (himpunan) adalah suatu kumpulan dari obyek yang mempunyai urutan yang dianggap sebagai suatu kesatuan. Tiap-tiap obyek di dalam set disebut dengan anggota (member) atau elemen himpunan (elemen of the set). Anggota-anggota dari set harus mempunyai tipe yang sama dan disebut dengan base type dan base tye harus berbentuk tipe data sederhana yaitu bertipe ordinal (integer,boolean,char,skalar kecuali real).
Sintak : Set of tipe ordinal

Contoh

Type
Jumlah = set of char

Pembentuk set (set constructor) ,menunjukkan elemen elemen yang digunakan di dalam ungkapan set. Set construcot terdiri dari satu atau lebih elemen jangkauan dari elemen yang dipisahkan dengan koma dan diletakkan diantara kurung bracket (‘[‘ dan ‘]’).

Contoh :

[2,3,5,7,11] : nilai integer 2,3,5,7, dan 11
type
karakter = set of ‘a’..’z’
var
hurufku : karakter;

Record
Sebuah record berisi beberapa komponen atau fields yang dapat berbeda tipenya. Setiap fields adalah list identifier dipisah koma, diikuti oleh simbol titik dua dan sebuah tipe. Deklarasi tipe data record diawali dengan kata cadangan record dan diikuti oleh suatu daftar field dan diakhiri dengan kata cadangan End.

Sintak :

type
Record
Daftar field
End


Contoh

Type
Mhs = Record
Npm : string[8];
Nama : string[30];
Nilai : byte
End;
Var
RecordMhs : Mhs;


Tiap komponen field dari record dapat dipergunakan dengan cara menuliskan:

Pengenal-record.pengenal-field[.pengenal-field]
RecordMhs.Npm:=’51295801’;

RecordMhs adalah pengenal-field dan Npm adalah pengenal-field.

Statemen With
Statemen with menyebutkan pengenal record, shiongga penggunaan field-field selanjutnya tiadk perlu menyebutkan pengenal record.
Contoh :

With recordMhs do
Begin
Npm :=’51295801’
Nama := ‘Ipunk’;
Nilai := ‘90’;
End;

· Pointer
Tipe pointer adalah data yang berisi suatu alamat yang menunjuk ke lokasi tertentu. Bila pointer berisi alamat dirinya sendiri maka pointer tidak menunjuk ke manapun disebut nil.

Tipe data pointer ini dipergunakan untuk keperluan pengalamatan pada memory, contohnya pengalokasian variabel dinamik. Nilai suatu variabel pointer dapat diisi dengan cara:
· Menggunakan prosedur New atau getmem.
· Dengan operator @.
· Menggunakan fungsi Ptr.

Contoh:

Type
PenunjukKaryawan = ^CatatanKaryawan
Catatankaryawan=Record
Kode : string[5];
Nama : string[25];
Gaji : Real;
End;
Var
Datakaryawan : Penunjukkaryawan;

Pada deklarasi ini, tipe data PenunjukKaryawan adalah tipe data pointer yang menunjuk ke suatu record CatatanKaryawan dan deklarasi dari record ini dapat diletakkan dibawahnya.

Variabel dinamik dapat dihapus dari heap menggunakan prosedur standar Dispose dan prosedur standar Mark dan Release. Prosedur standar Mark hanya akan memberi tanda saja dan yang digunakan untuk menghapusnya adalah prosedur standar Release.

Larik Dinamik
Larik dinamik bentuknya seperti larik statik biasa, hanya dialokasikan ke heap dengan prosedur standar New.

Daftar Berkait
Suatu daftar Berkait (linked list) adalah suatu simpul(node) yang menunjuk ke simpul berikutnya di dalam suatu urutan. Suatu simpul dapat berupa struktur data record. Suatu node minimal harus mempunyai dua buah komponen., yaitu:
1. Satu atau lebih field yang berisi data didaftar berkait.
2. Satu atau lebih field berupa pointer yang menunjuk ke node lainnya. Field yang berupa pointer ini disebut dengan kait(link).

Membuat daftar berkait.
Suatu daftar berkait harus mempunyai ujung awal dari simpul (node) dan ujung akhir dari node. Ujung awal diperlukan supaya dapat mengetahui awal dari node dan unjung akhir diperlukan supaya mengetahui sampai dimana daftar berkait berakhir. Ada beberapa cara menunjukkan akhir dari node, yaitu :

1. Memberikan suatu nilai data yang unik yang tidak pernah terjadi pada data sesungguhnya. Data ini disebut dengan data sentinel dan simpulnya disebut dengan simpul boneka (dummy node). Bila node berisi dengan data ini, maka dianggap sebagai akhir dari daftar berkait.
2. Menetapkan pointer di node yang terakhir dengan nilai Nil. Kata cadangan Nil ini menunjukkan suatu nilai ponter yang tidak menunjuk ke mana pun. Bila pointer di node berisi nilai Nil maka berarti merupakan akhir dari daftar berkait.

· TEORI PENUNJANG

Di dalam bahasa Pascal dikenal 3 macam tipe dari file, yaitu file teks, file bertipe dan file tak bertipe.

File Teks
File teks(text file) merupakan file yang berisi kumpulan dari karakter yang dibentuk dalam baris-baris dan masing-masing baris diakhiri dengan tanda akhir-dari-baris (end-of-line marker) berupa karakter carriege return dan karakter line feed (CR/LF). Sedangkan akhir dari file ditunjukkan oleh tanda kahir-dari-file (end of file marker) berupa karakter Ctrl-Z.
File teks sebenarnya merupakan file dengan tipe char, tetapi mempunyai perbedaan, yaitu nilai yang bukan tipe char dapat direkam dan dibaca oleh file teks. Nilai yang bukan tipe char ini akan secara otomatis dirubah ke atau dari tipe char.
File variable pada file teks ditunjukkan denagnsesuatu variabel yang dideklarasikan dengan tipe text.
Contoh :

Var
TipeFile : Text;
Begin
Assign(TipeFile,’Data.dat’);


Prosedur dan fungsi yang digunakan pada File teks.
Prosedur Append
Digunakan untuk membuka file yang telah ada untuk keperluan menambah data ke dalam file.
Sintak :

Append(var f:text);

Prosedur write dan writeln
Digunakan untuk merekamkan data ke file.
Sintak :

Write ([var f:text] v1[,v2,…,vn]);
Writeln ([var f:text] v1[,v2,…,vn]);

Prosedur read dan readln
Digunakan untuk membaca satu atau lebih nilai dari file ke dalam satu atau lebih variabel. Pada Readln sama dengan read tetapi kemudian akan menggeser pembacaan ke awal dari baris berikutnya dalam file.
Sintak :

Read ([var f:text] v1[,v2,…,vn]);
Readln ([var f:text] v1[,v2,…,vn]);

Prosedur SettextBuf
Digunakan untuk membuat buffer yang baru sebagai pengganti dari internal buffer untuk file variable.
Sintak :

SetTextBuff(var f:text; var buf[;size:word]);

Fungsi Eoln
Digunakan untuk mengetahui apakah posisi dari file berada di end-of-line marker atau tidak.
Sintak :

Eoln [(var f:text)]:boolean;

Fungsi SeekEof
Akan menghasilkan status akhir dari file.
Sintak :

SeekEof[(var f:text)]:boolean;

Fungsi SeekEoln
Fungsinya sama dengan fungsi standar Eoln, yaitu akan menghasilkan status akhir dari baris.
Sintak :

SeekEoln[(var f:text)]:boolean;

File Bertipe
File bertipe dapat diakses secara urut dan secara acak. File bertipe dapat dibuka dengan prosedur rewrite atau reset. Prosedur rewrite untuk membuat dan sekaligus membuka file baru dan prosedur reset untuk membuka file yang telah ada.
Contoh :

Var
FileData : file of byte;
Begin
Assign(FileData,’Abc’);
Rewrite(fileData);

Prosedur dan fungsi yang digunakan pada File teks.
Prosedur standar write dan read
Prosedur standar write digunakan untuk merekamkan satu atau lebih nilai ke dalam file dan prosedur standar read digunakan untuk membaca satu atau lebih nilai dari file.
Sintak :

Write(f,v1[,v2,…,vn]);
Read(f,v1[,v2,…,vn]);

Prosedur standar seek
Digunakan untuk mengarahkan penunjuk file ke suatu komponen tertentu di dalam file.
Sintak :

Seek(f;n:longint);

Prosedur standar Truncate
Digunakan untuk menghapus sejumlah komponen atau record mulai dari posisi tertentu dengan Sintak : Truncate(f);

Fungsi standar Filepos
Digunakan untuk menghasilkan letak posisi sekarang dari penunjuk file
Sintak :

FilePos(f) : longint;

Fungsi standar Filesize
Digunakan untuk menghasilkan jumlah dari komponen atau record yang sudah ada di file.
Sintak :

Filesize(f) : longint;

File tak bertipe.
File tak bertipe (untyped file) adalah channel I/O (Input/output) level rendah yang terutama digunakan untuk mengakses langsung suatu file di disk tidak perduli bagaimana tipe dan strukturnya.
Contoh :

FileData : File;

Prosedur standar read dan write diganti dengan prosedur standar BlockRead dan Blokwrite.
Procedure BlockRead
Digunakan untuk membaca sejumlah record yang ditunjukkan oleh count dari file yang ditunjukkan oleh variabel file f ke dalam memori mulai dari byte pertama yang ditempati oleh variabel buf. Jumlah record yang telah selesai dibaca akan dicatat di variabel result.
Sintak :

BlokRead(var f:file;var buf;count:word[;result:word]);

Procedure BlockWrite
Akan merekamkan sejumlah record yang ditunjukkan oleh count ke file yang ditunjukkan oleh variabel f dari memori mulai dari byte pertama yang ditempati oleh variabel buf.Jumlah dari record yang telah selesai direkamkan akan dicatat di variabel result.
Sintak :

BlokWrite(var f:file; var buf; count:word[;result:word]);

Procedure dan fungsi standar untuk semua tipe file.
Prosedur Assign,Rewrite,Reset,Close,Erase,Rename,GetDir,ChDir,MkDir dan RmDir, sedangkan fungsi standar yang digunakan untuk ke 3 tipe file adalah fungsi standar Eof dan IOResult.

· TEORI PENUNJANG

Unit adalah dasar dari pemrograman modular pada Pascal. Dengan menggunakan unit kita dapat membuat pustaka-pustaka program dan dapat juga memecah program besar ke dalam modul-modul logical yang berhubungan, sehingga dapat mempermudah dan memberikan efesiensi pemrograman secara modular.

Struktur Unit.
Terdiri dari :
Judul Unit (Unit Header)
Judul Unit menyatakan nama unit, yang mana nantinya dipergunakan oleh modul atau program lain dengan pernyataan uses.

Bagian Penghubung (Interface Part)
Bagian penghubung mendeklarasikan konstanta, tipe, variable, prosedur dan fungsi yang akan dipergunakan oleh orang lain secara publik. Prosedur dan fungsi yang ada pada bagian ini adalah hanya pendeklarasiannya saja.

Bagian Implementasi.(Implementation Part)
Bagian Implementasi mendefinisikan isi dari semua prosedur dan fungsi yang publik. Dengan tambahan selain prosedur dan fungsi dapat juga mendeklarasikan konstanta, tipe, variable,prosedur dan fungsi yang akan dipergunakan secara khusus.

Bagian Inisialisasi(Initialization Part)
Bagian Inisialisasi adalah bagain terakhir dari unit yang mempunyai fungsi sebagai penginisialisi (pemberian nilai awal) pada sebuah unit.

Struktur :
Unit
Interface
{Deklarasi secara publik bersifat global}
Implementation
{Deklarasi secara pribadi bersifat lokal}
{Prosedur-prosedur dan fungsi-fungsi}

Begin
{kode-kode inisialisi}
End.


Mengkompilasi unit.
Hasil kompilasi suatu unit akan dihasilkan file dengan ekstension .TPU (Turbo Pascal Unit). Yang perlu diketahui adalah bahwa judul unit sebaiknya sama dengan file unitnya. Misalnya judul dari unitnya adalah UNITKU dan tersimpan di file dengan nama UNITKU.PAS. Hasil dari kompilasi unit ini akan didapatkan suatu file dengan nama DOSKU.TPU.

· Karakteristik OOP
Pemrograman berorientasi objek adalah sebuah metode pemrograman dengan mengadakan pendekatan terhadap apa yang sering dilakukan manusia. Ada 3 buah karakteristik yang mendasari pemrograman berorientasi objek.

1. Pengkapsulan (Encapsulation).
Mengkombinasikan sebuah record dengan procedure dan function agar dapat dimanipulasi menjadi sebuah tipe data yang baru yaitu sebuah objek.

2. Pewarisan (Inheritance)
Mendefinisikan sebuah objek dan digunakan untuk membangun sebuah hirarki keturunan dari objek. Turunannya mewarisis sifat dari moyangnya.

3. Polimorphis(Polymorphism)
Memberikan sebuah aksi pada objek yang dibagi ke atas dan ke bawah, setiap objek dalam hirarki mengimplementasikan aksi dari dirinya sendiri.

Objek merupakan suatu bentuk struktur data yang mempunyai sejumlah komponen tetap yang terdiri dari field dan method.
Field merupakan bentuk penyimpanan ataupun dapat merupakan konstanta tetap, sedangkan methode merupakan subrutin yang dapat berupa prosedur atau fungsi.

Sebuah objek dapat dengan mudah dibuat turunannya tanpa sedikitpun kehilangan sifat-sifat dari penurunnya, hal ini sangat berguna dalam pengembangan sebuah modul yang memerlukan banyak bentuk/permasalahan yang sama, dan obyek ini jika dilakukan perubahan pada turunannya maka perubahan ini tidak akan berdampak terhadap penurun objek tersebut. Jika objek tersebut ingin dirubah dari sifat aslinya maka ini sering disebut dengan istilah override.

Tidak ada komentar:

Poskan Komentar

MUSIC


MusicPlaylistView Profile
Create a playlist at MixPod.com