Selasa, 28 Februari 2012

Tutorial Turbo Pascal 7.0 Part8

Kali ini pada tutorial turbo pascal 7.0 Modul 8 kita akan membahas beberapa fasilitas yang tersedia pada pascal dan akan membantu membuat program anda menjadi lebih terstruktur dan mudah di maintenance.
Sebagai programmer yang baik, tentu saja anda harus mampu menghasilkan program yang terstruktur dan mudah dimaintenance.


Constants, Set, dan Type.
Pengertian konstanta di pascal hampir sama dengan konstanta di dunia matematika maupun fisika, yaitu besaran-besaran yang memiliki ketetapan ketetapan tertentu. Tetapi pemakaian konstanta di pascal programmer bebas membuat konstanta sesuai dengan kebutuhan programnya.
Contoh :
Uses crt;
Const {deklarasi konstanta}
PPN = 0.1; {PPN 10%}
Var
Penjualan, SetelahPPN : Real;
Begin
Write('Nilai penjualan :') Readln(Penjualan);
SetelahPPN = NilaiPenjualan * (1+PPN);
Writeln('Nilai penjualan setelah PPN adalah ', SetelahPPN:10:2);
End.

Kalau begitu bukankan sama saja dengan menulis langsung
SetelahPPN = NilaiPenjualan * (1+0.1);
dan apa hubungannya dengan membuat program kita lebih mudah di maintenance ?
Pada prinsipnya sama, tetapi coba anda bayangkan, misalnya terjadi perubahan nilai PPN menjadi 12.5%, berdasarkan contoh diatas kita tinggal mengubah
Const {deklarasi konstanta}
PPN = 0.125; {PPN 12.5%, tidak pakai :}

Dalam hal ini anda tidak perlu mengubah isi program, sehingga maintenance program anda menjadi mudah.

Kegunaan lain dari konstanta pada pascal
Yaitu memberikan nilai awal kepada variabel
contoh yang diambil dari Hangman Modul 2 :
const
havetry=10;
s: array[0..18] of string=
('hello', 'mouse', 'hacher', 'programmer', 'killer', 'teacher', 'splotchier',
'butcher', 'computer', 'pascal', 'house', 'poor', 'children', 'museum',
'security', 'spillway', 'stupidity', 'corrigenda', 'freebooter');
dan contoh lain :
Uses crt;
Const {deklarasi konstanta}
Gaji : Real = 500000;
Var
Omzet : Real;
Begin
Write('Omzet penjualan :') Readln(Omzet);
If Omzet >= 10000000 Then
Gaji := Gaji + 10000;
Writeln('Gaji yang diterima ', Gaji:10:2);
End.

Pada contoh diatas konstanta Gaji yang dideklarasikan beserta type dapat berprilaku sebagai variabel, sehingga nilainya boleh diubah didalam program.

Sekarang akan kita lanjutkan ke pembahasan tentang Set.
Set adalah sesuatu fasilitas khusus pada pascal yang tidak dimiliki oleh bahasa pemrograman lainnya. Set pada pascal adalah merupakan himpunan seperti pada matematika. Pemakaian Set dapat menyederhanakan algoritma program, dan memudahkan pembacaan.
contoh :
uses crt;
var
c : char;
vowel : set of 'A','E','I','O','U'; {deklarasi variabel Set}
letter : set of 'A'..'Z'; {range A s/d Z}
begin
write('Enter a vowel');
repeat
c:=upcase(readkey);
until c in vowel;
write('Enter a letter');
repeat
c:=upcase(readkey);
until c in letter;
end.

Contoh lain pemakaian set
uses crt;
var
c : char;
begin
write('Yes or no (Y/N) ?');
repeat
c:=upcase(readkey);
until c in ['Y','N'];
end.

Fungsi operator in pada operasi Set
Fungsi operator in pada Set adalah menyatakan bagian dari himpunan tertentu.

Fasilitas lain yang khusus pada pascal

user defined type
 dimana pemakai dapat membuat type ciptaan sesuai dengan kebutuhan program.

Type ciptaan
Sebagaimana kita ketahui, pascal menyediakan beberapa ordinal type seperti shortint, integer, longint, byte, char dan boolean. Didalam pemakaian type ini kadang-kadang kurang sesuai dengan kebutuhan, misalnya kita ingin mengolah data nilai siswa yang kemungkinan nilainya berkisar 0 s/d 100. Pada prinsipnya kita dapat menggunakan type byte untuk keperluan tersebut.
Contoh :
Var
Fisika : Byte;

Tetapi akan lebih baik kalau dengan contoh berikut ;
Type
Nilai = 0..100;
Var
Fisika : Nilai;

Dalam hal ini type ciptaan seperti ini disebut sebagai Subrange.

pengertian dari subrange
Sebenarnya subrange tersebut merupakan bagian dari range nilai type lain, misalnya type Byte dimana nilai yang dapat ditampung berkisar 0 s/d 255, padahal deklarasi type diatas :
Type
Nilai = 0 .. 100;

Dalam hal ini sebenarnya type nilai merupakan subrange dari type ordinal yang telah ada.

Type substitusi
adalah pemberian nama terhadap type berstruktur seperti array dan string, sehingga selanjutnya kita dapat menggunakan nama tersebut dalam deklarasi variabel.
Contoh :
Type
STRING30 = String[30];
Var
Nama : STRING30;
Sebenarnya sama saja kalau kita tulis sebagai berikut :
Var
Nama : STRING30;

Enumerated type
Pada pascal, user diberi kesempatan untuk membentuk ordinal type yang sesuai dengan kebutuhan program, misalnya :
Contoh :
Var
Today : Byte;
Begin
Today := 7;
If Today = 4 then Writeln('Jangan lupa sembayang DATUK');
End.

Bandingkan dengan :
Type
DOW = (senin, selasa, rabu, kamis, jumat, sabtu, minggu);
Var
Today : DOW;
Begin
Today := minggu;
If Today = kamis then Writeln('Jangan lupa sembayang DATUK');
End.

Enumerated type tidak dapat mengalami input output maupun operasi matematika, tetapi ada beberapa fungsi bantu ordinal yang dapat digunakan untuk mengolah enumerated type, yaitu :
Pred(X), function mendapatkan nilai predecessor dari suatu nilai ordinal
type.
Succ(X), function mendapatkan nilai predecessor dari suatu nilai ordinal
type.
Dec(X), procedure mengurangi nilai 1 ke variabel X.
Inc(X), procedure menambah nilai 1 ke variabel X.
Contoh :
Type
DOW = (senin, selasa, rabu, kamis, jumat, sabtu, minggu);
Var
Today : DOW;
Begin
Today := minggu;
Today := Pred(Today); {sabtu}
Inc(Today); {minggu}
End.

Fungsi bantu konversi ini terdiri atas

ROUND(Real)
FUNCTION untuk menghasilkan data type INTEGER dari suatu REAL dengan memperhatikan aturan pembulatan.

TRUNC(REAL)
FUNCTION untuk mengambil bagian INTEGER dari suatu REAL.

ORD(Char);
FUNCTION untuk menghasilkan data type Byte dari suatu Character.

CHR(Byte);
FUNCTION untuk menghasilkan data type Character dari suatu Byte.

Fungsi Bantu Matematika :

ABS(Numerik);
FUNCTION untuk mengambil harga mutlak suatu nilai

FRAC(Real);
FUNCTION untuk mengambil bagian pecahan dari suatu REAL

INT(Real);
FUNCTION untuk mengambil bilangan bulat dari suatu REAL

SQR(Real);
FUNCTION untuk menghasilkan nilai kuadrat suatu bilangan

SQRT(Real)
FUNCTION untuk menghasilkan akar kwadrat suatu bilangan

COS(Real)
FUNCTION untuk menghasilkan Cosinus suatu sudut

SIN(real);
FUNCTION untuk menghasilkan Sinus suatu sudut (dalam radian PI/180)

ARCTAN(real);
FUNCTION untuk menghasilkan sudut yang diketahui nilai tangennya

PI;
FUNCTION untuk menghasilkan nilai pi (3.1415926...)

LN(Real);
FUNCTION untuk menghasilkan logaritma natural dari suatu nilai

EXP(real);
FUNCTION untuk menghasilkan eksponensial dari suatu nilai.

Sekian Dulu ya untuk Modul 8 nya.. Untuk Kelanjutannya baca di Modul 9 ya.. dan untuk melihat postingan sebelumnya tentang Turbo Pascal baca di Modul 7

Tidak ada komentar:

Posting Komentar