Bab 2 Statemen-Statemen pada Pemrograman Pascal
Nah, sekarang anda
sudah masuk ke bab statement pemrograman ….selamat mencoba… Reserved
Word Reserved Word adalah kata-kata baku yang digunakan dalam program
dan sudah terintergrated dalam pascal dan juga mempunyai bentuk serta
kegunaan tertentu yang telah didefinisikan oleh Pascal. Reserved Word
tidak boleh didefinisikan kembali oleh pemakai, sehingga tidak dapat
digunakan sebagai pengenal (Identifier). Dalam bahasa pemrograman
Pascal, beberapa Reserved Word dalam Pascal anatra lain:
AND DOWNTO IN OF STRING
ASM ELSE INHERITED OR THEN
ARRAY END INLINE PACKED TO
BEGIN EXPORTS INTERFACE PROCEDURE TYPE
CASE FILE LABEL PROGRAM UNIT
CONST FOR LIBRARY RECORD UNTIL
CONSTRUCTOR FUNCTION MOD REPEAT USES
DESTRUCTOR GOTO NIL SET VAR
DIV IF NOT SHL WHILE
DO IMPLEMENTATION OBJECT SHR WITH
.
Selain dari Reserved Word di atas, Turbo Pascal masih memiliki tambahan Reserved Word berikut:
ABSOLUTE ASSEMBLER () FAR FORWARD INDEX
Beberapa Statemen Turbo Pascal
Statemen
adalah perintah untuk pengerjaan program pascal. Statemen terletak di
bagian deklarasi statemen dengan diawali oleh kata cadangan BEGIN dan
diakhiri dengan kata cadangan END. Akhir dari setiap statemen diakhiri
dengan titik koma [;]. Statemen statemen dalam bahasa Pascal terdiri
dari pernyataan yang berupa fungsi dan prosedur yang telah disediakan
sebagai perintah standar Turbo Pascal.
1. Statemen-statemen yang digunakan untuk input/output.
# Read/Readln [prosedur]. Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu variabel.
Sintaks: Read/Readln(x); (ingat, selalu diakhiri dengan titik koma [;])
Keterangan : x = variabel.
Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya.
Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input.
# ReadKey [fungsi]. Untuk pembacaan sebuah karakter dari keyboard. Tipe data yang dihasilkan adalah char.
Sintaks: ReadKey;
# Write/Writeln [prosedur]. Digunakan untuk menampilkan isi dari suatu nilai variable dilayar.
Sintaks: Write/Writeln(x);
Keterangan : x = variabel.
Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor
Contoh :
Program input;
Uses Crt;
Var nm : String;
npm : String;
Begin
Clrscr;
Writeln ('masukkan nama dan NPM ');
Writeln ('------------------------------');
Write ('nama anda : ');
Readln (nm);
Writeln ('NPM anda : ');
Readln (npm);
End.
Bila dijalankan hasilnya adalah:
masukkan nama dan NPM
------------------------------
nama anda : ( di input )
NPM anda : ( di input )
2. Statemen-statemen yang digunakan untuk pengaturan letak layar.
# ClrScr [prosedur]. Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; [Clear screen]
# GotoXY[prosedur]. Untuk menempatkan posisi kursor pada layar.
Sintaks: GotoXY(X, Y: Byte);
Keterangan : X = sumbu X (posisi horisontal)
Y = sumbu Y (posisi vertikal)
# DelLine [prosedur]. Untuk menghapus sebuah baris pada posisi kursor dan menaikkan baris-baris dibawahnya.
Sintaks: DelLine;
#
InsLine [prosedur]. Untuk menyisipkan sebuah baris pada posisi kursor
dan menggeser kebawah tampilan-tampilan baris dibawahnya.
Sintaks: InsLine;
# Delay [prosedur]. Untuk menghentikan sejenak proses program.
Sintaks: Delay (MS: Word);
Keterangan : variable MS = ukuran waktu dalam milisecond.
Contoh :
Program Layar;
Uses Crt;
Var x : Char;
Begin
ClrScr;
GotoXY(35,10);Writeln (‘I Love Dinda');
Write (tunggu sebentar...!!');
Delay (5000);
InsLine;
GotoXY (35,11);Writeln ('Bayi sehatku');
GotoXY(01,13);Writeln ('Tekan Enter !');
Delay(1000);
GotoXY(15,12);
DelLine;
Read(x);
End.
Hasilnya adalah :
I Love Dinda
Bayi sehatku
tunggu sebentar...!!
Tekan Enter !
3. Statemen yang digunakan untuk memanipulasi string.
# ConCat[fungsi]. Untuk menggabungkan 2 atau beberapa variabel string.
Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;
contoh: ConCat ('ABC','DEF') { ABCDEF }
# Copy [fungsi]. Mengambil satu atau beberapa karakter dari sebuah string.
Sintaks: Copy (S,Index,Count) : String;
Keterangan : S = sebuah string (string).
Index = posisi awal kita akan mengambil beberapa karakter (integer)
Count = banyaknya karakter yang akan diambil (integer).
# Delete [prosedur]. Menghapus sebagian karakter dari sebuah string.
Sintaks: Delete (S,Index,Count);
Keterangan : sama dengan statemen Copy.
# Insert [prosedur]. Menyisipkan satu atau beberapa karakter ke dalam sebuah string.
Sintaks: Insert (Source,var S,Index);
Keterangan : Source = sumber string untuk disisipi (string)
var S = string tujuan yang akan disisipi oleh string Source (string)
Index = posisi mulai (integer).
# Length [fungsi]. Memberikan nilai panjang dari suatu string (jumlah karakter dalam string).
Sintaks: Length (S);
Keterangan : S = string
Length(S) menghasilkan nilai integer.
# Pos [fungsi]. Mencari posisi sebuah bagian string (substring) didalam sebuah string.
Sintaks: Pos (Substr,S); {menghasilkan nilai Byte}
Keterangan
: Substr = substring yang akan dicari posisinya didalam sebuah string
S. Bila bernilai 0 berarti nilai string yang dicari tidak ada.
# Str [prosedur]. Merubah nilai numerik ke dalam nilai string.
Sintaks: Str (N,S);
Keterangan :
N = data tipe integer,
S = data tipe string.
# Val [prosedur]. Merubah nilai string ke dalam nilai numerik.
Sintaks: Val (S,N,P);
Keterangan :
S = nilai string,
N = nilai real,
P = posisi salah.
Nilai
string harus berisi angka, plus atau minus, bila tidak berarti
kesalahan dan letak kesalahannya ditunjukkan oleh variabel posisi salah.
Jika benar, maka nilai variabel tsb = 0 (nol).
# UpCase [fungsi]. Memberikan huruf kapital dari argumen.
Sintaks: UpCase (S);
Keterangan :
S = variabel bertipe karakter.
Contoh :
Program Man_String;
Uses Crt;
Var s : String;
l : Integer;
h : String;
Const a='Dinda';
b='Bayi ';
c='Sehatku';
Begin
ClrScr;
s:= ConCat (a,b,c);
Writeln (s);
Insert (' & ',s,6);
Writeln(s);
Delete (s,7,7);
Writeln (s);
h:=Copy (s,1,5);
Writeln (h);
l:= Length(s);
Writeln ('Panjangnya string S : ',l);
Writeln ('Posisi "Sehat" pada nilai S : ',POS('Sehat',s));
END.
Hasilnya adalah :
DindaBayiSehatku
Dinda & Bayi Sehatku
Dinda Sehatku
Dinda
Panjangnya string S : 16
Posisi "Sehat" pada nilai S : 7
4. Statemen-statemen untuk perhitungan aritmatik.
# Abs [fungsi]. Memberikan nilai mutlak dari suatu argumen.
Sintaks: ABS(x);
# ArcTan[fungsi]. Memberikan nilai dari fungsi arctangent dari perhitungan goniometri.
Sintaks: ArcTan (x); ‘dimana x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real.’
# Cos [fungsi]. Memberikan nilai dari fungsi Cosinus.
Sintaks: Cos (x);
# Exp [fungsi]. Menghitung nilai pangkat dari bilangan e (bilangan alam),yaitu sebesar x.
Sintaks: Exp (x); ‘x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real. ‘
# Frac [fungsi]. Untuk mendapatkan nilai pecahan dari suatu bilangan.
Sintaks: Frac (x); ‘Tipe dari x sama seperti yang diatas. ‘
# Int [fungsi]. Memberikan nilai integer (bilangan bulat) dari suatu variabel dengan membuang bilangan di belakang koma.
Sintaks: Int (X);
# Ln [fungsi]. Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x.
Sintaks: Ln (x);
# Sin [fungsi]. Memberikan nilai dari fungsi Sinus.
Sintaks: Sin (x);
# Sqr [fungsi]. Digunakan untuk menghitung nilai pangkat kuadrat dari suatu bilangan.
Sintaks: Sqr (x);
Tipe dari x bisa berupa real maupun integer. Dan hasilnya akan sama dengan tipe dari x.
# Sqrt (fungsi). Digunakan untuk menghitung nilai akar dari suatu bilangan.
Sintaks: Sqrt (x);
Contoh :
Program Aritmatik;
Uses Crt;
Var x : Real;
Begin
Clrscr;
Write('Masukkan nilai dari X = ');
Readln (x);
If x <0 Then x:=Abs (x);
Writeln('Nilai X = ',x:5:2);
Writeln ('Nilai eksponentialnya = ',EXP(x):9:3);
Writeln ('Nilai logaritma alamnya = ',LN(x):9:3);
Writeln ('Nilai integernya = ',INT(x):5:2);
Writeln ('Nilai fraksionalnya = ',FRAC(x):5:2);
Writeln ('Nilai X dipangkatkan = ',SQRT(x):9:3);
Writeln ('Nilai X diakarkan = ',SQRT(x):9:3);
Write('Nilai X jika dimasukkan dalam ');
Writeln('fungsi Sin,Cos,Tangen: ');
Writeln('- Sinus = ',Sin(x):9:3);
Writeln('- Cosinus = ',Cos(x):9:3);
Writeln('- Tangen = ',ArcTan(x):9:3);
End.
Hasilnya :
masukkan nilai dari X = -2.5
Nilai X = 2.50
Nilai eksponensialnya = 12,182
Nilai logarima alamnya = 0,196
Nilai integernya = 2.00
Nilai fraksionalnya = 0.50
Nilai X dipangkatkan = 6.250
Nilai X diakarkan = 1.581
Nilai X jika dimasukkan dalam fungsi Sin,Cos,Tangen:
- Sinus = 0.598
- Cosinus = -0.801
- Tangen = 1.190
5. Statemen-statemen untuk transfer nilai dari suatu variabel.
# Chr [fungsi]. Merubah nilai dari byte ke bentuk karakter yang sesuai dengan kode ASCII.
Sintaks: Chr (x);
Keterangan : x bertipe byte
contoh : Writeln (Chr (61));
hasilnya : a
# Ord [fungsi]. Merubah nilai suatu variabel dari bentuk karakter ke bentuk longint.
Sintaks: Ord (x);
Keteranagn : x bertipe char
contoh : Writeln(Ord ('B'));
hasilnya : 42
# Round [fungsi]. Membulatkan data tipe real ke data tipe longint.
Sintaks: Round (x);
Keterangan : Jika nilai pecahan < 0,5 maka dibulatkan kebawah. Jika nilai pecahan > 0,5 maka dibulatkan keatas.
contoh : Writeln('10/3 dibulatkan = ',Round(10/3));
hasilnya : 10/3 dibulatkan = 3
# TRUNC [fungsi]. Membulatkan kebawah data tipe real ke data tipe longint.
Sintaks: Trunc (x);
contoh : Writeln('20/3 dibulatkan kebawah = ',Trunc (20/3));
hasilnya : 20/3 dibulatkan kebawah = 6
6. Statemen-statemen untuk memanipulasi data.
# Pred [fungsi]. Memberikan nilai sebelum nilai argumen dalam urutannya dalam ASCII.
Sintaks: Pred (x);
# Succ [fungsi]. Memberikan nilai sesudah nilai argumen dalam urutannya dalam ASCII.
Sintaks: Succ (x);
# Inc[fungsi]. Menambah (increments) nilai suatu variabel.
Sintaks: Inc (x,i); {i >= 1}
# Dec [fungsi]. Mengurangi (decrements) nilai suatu variabel.
Sintaks: DEC(x,i); {i >=1}
Contoh :
Progam Man_Data;
Uses Crt;
Type
hari = (hr0,hr1,hr2,hr3,hr4,hr5,hr6,hr7)
Var
urutanhr : hari;
Const
namahr : Array [hr1..hr7] of String [6]=('Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu');
Begin
Writeln('Daftar Nama Hari);
urutanhr := hr0;
While Urutanhr < hr7 DO
Begin
urutanhr := Succ(urutanhr);
Write('hari ke ',Ord(Urutanhr):2,' adalah ');
Writeln(namahr[urutanhr]);
End;
End.
hasilnya adalah :
Daftar Nama Hari
hari ke 1 adalah Senin
hari ke 2 adalah Selasa
hari ke 3 adalah Rabu
hari ke 4 adalah Kamis
hari ke 5 adalah Jumat
hari ke 6 adalah Sabtu
hari ke 7 adalah Minggu
7. Statemen-statemen tambahan (warna,suara dan window).
# TextColor [prosedur]. Untuk mengatur warna dari karakter-karakter di layar.
Sintaks: TextColor (color : Byte);
Catatan : untuk pilihan warna lihat pada buku Turbo Pascal yang anda miliki.
Daftar TextColor :
(2) Hijau Muda (3)Hijau pupus (4)Merah
(5)Ungu Tua (6) Kuning (7)Putih
(8)Biru Tua (9)Biru Cerah (10)Hijau Muda
(12)Merah Muda (13)Ungu Cerah (14)Kuning Muda
(15) Ungu Pupus (16)Hitam
Daftar TextColor dengan Blink :
(17)Biru Tua (18)Hijau Muda (19)Hijau Pupus
(20)Merah (21)Ungu Tua
# TextBackGround [prosedur]. Untuk mengatur warna latar belakang dari karakter-karakter dilayar.
Sintaks: TextBackGround (Color : Byte);
# Window [prosedur]. Untuk membuat suatu jendela (window) yang terletak pada layar.
Sintaks: Window (x1,x2,y1,y2 : Byte);
x1,x2 = kordinat kiri atas dengan nilai maksimal sesuai dengan mode layar.
y1,y2 = kordinat kanan bawah dengan nilai maksimal sesuai dengan mode layar.
# TextMode [prosedur]. Untuk mengatur lebar layar, 80 kolom atau 40 kolom.
Sintaks: TextMode(Mode: Byte);
Default = C80
# Sound [prosedur]. Untuk mengaktifkan suara (beep) pada internal speaker.
Sintaks: Sound (Hz : word);
Untuk mengnonaktifkannya, gunakan statemen NoSound.
Contoh :
Program Layar2;
Uses Crt;
Begin
ClrScr;
Window (5,5,20,75);
TextBackGround(Red); ‘anda juga bisa menggunakan angka (4)
TextColor(Yellow);
Sound (220);
GotoXY(10,7);
Writeln('I Love Dinda');
GotoXY(11,7);
Writeln('Bayi Sehatku');
NoSound;
End.
Sebagai Latihan dari teori-teori yang sudah anda pelajari diatas, coba anda kerjakan soal-soal dibawah ini .
Soal Latihan
1. Soal I
Buatlah
program dibawah ini dengan tampilan menggunakan perintah Window,
TextColor, Blink TextColor, Textbackground, GotoXY, dan Sound untuk
memperindah tampilan.
1. Mengubah derajat temperatur, dari derajat Celcius ke derajat Fahreinheit dan Reamur (derajat Celcius diinput)
2. Menghitung Luas dan Keliling lingkaran, dengan jari-jari diketahui (diinput).
3. Menghitung Luas dan Keliling segitiga sembarang yang diketahui ke tiga sisinya.
4. Mencari nilai Sinus, Cosinus, dan Tangen dengan sudut diinput.
5. Mencari akar dan kuadrat dari suatu nilai (nilai diinput).
6.
Mencari nilai bulat dan pecahan dari suatu nilai yang dimasukkan
melalui keyboard (diinput). Nilai pecahan tersebut dibulatkan sampai 3
angka dibelakang koma (,).
7. Tampilkan nama dan NPM anda di dalam window, dan terletak pada tengah-tengah layar.
8. Tampilkan tulisan 'I Love Dinda’ di dalam window pada pojok kanan atas dengan ukuran window sama dengan tulisan tersebut.
2. Soal II
Buatlah
program pada soal jenis I (no. 1-6) dengan tampilan menggunakan 2
window. Window yang pertama digunakan untuk nilai yang diinput. Window
yang kedua untuk hasil dari program (output).
3. Soal III
1.
Buatlah program untuk menggabungkan 2 buah kata yang diinput. Setiap
kata yang diinput harus berada didalam window yang dan hasilnya berada
pada window yang berbeda pula.
2. Buatlah program untuk menampilkan window secara acak dengan warna yang berbeda.