Anda di halaman 1dari 21

Algoritma dan Pemograman

DASAR – DASAR PEMOGRAMAN PASCAL

1.1 Operator – Operator Standard Pascal

Tipe Fungsi Tipe Pengoperasi Tipe Hasil


:= Penetapan Sembarang kecuali
file
+ Aritmatik Tanda tambah uner Integer, real Integer, real
- Aritmatik Tanda kurang Integer, real Integer, real
+ Aritmatik Penjumlahan Integer, real Integer, real
+ Himpunan Gabungan Himpunan Himpunan
- Aritmatik Pengurangan Integer, real Integral, real
- Himpunan Beda Himpunan Himpunan
* Aritmatik Perkalian Integer, real Integer, real
* Himpunan Irisan Himpunan Himpunan
DIV Aritmatik Pembagian integral Integer Integer
/ Aritmatik Pembagian real Integer, real Real
MOD Aritmatik Modulus Integer Integer
= Relasional Persamaan Scalar, himpunan, Boolean
string, penunjuk
<> Relasional Pertidaksamaan Scalar, himpunan, Boolean
string, penunjuk
< Relasional Lebih kecil dari Scalar, string Boolean
<= Relasional Lebih kecil dari atau Scalar, string Boolean
sama dengan
<= Relasional Himpunan pemasukan Himpunan Boolean
> Relasional Pencakupan himpunan Scalar, string Boolean
>= Relasional Lebih besar dari atau Scalar, string Boolean
sama dengan
>= Relasional Pencakupan himpunan Himpunan Boolean
IN Relasional Keanggotaan himpunan Scalar himpunan IN Boolean
AND Logika Dan Boolean Boolean
NOT Logika Negasi Boolean Boolean
OR Logika Atau Boolean Boolean

1.2. kata – kata yang digunakan dalam Pascal

AND END MOD REPEAT


ARRAY FILE NIL SET
BEGIN FOR NOT THEN
CASE FORWARD OF TO
CONST FUNCTION OR TYPE
DIV GOTO PACKED UNTIL
DO IF PROCEDURE VAR
DOWNTO IN PROGRAM WHILE
ELSE LABEL RECORD WITH

1.3. Simbol – simbol dalam Pascal


1
Algoritma dan Pemograman

+ - * / := . , ;
: / = <> < <= >= >
( ) [ ] (* *)  ..

1.4. Latihan dan Tugas

A. Kerjakan program dibawah ini!


1. PROGRAM SUM ( INPUT,OUTPUT ) ;
USES WinCrt;
VAR A, B, TOTAL : INTEGER;
BEGIN
WRITELN (‘Masukkan 2 bilangan untuk dijumlahkan …’);
READ (A, B) ;
TOTAL := A + B;
WRITELN (‘Jumlah dari’, A, ‘dan’, B, ‘adalah’, TOTAL)
END.

2. Program Variabel;

{--------------------------------------------------------------------------------------}
{ Contoh untuk menunjukkan program yang mengandung }
{ variabel }
{--------------------------------------------------------------------------------------}
USES WinCrt ;
VAR
Jumlah : Integer; { Deklarasi variable jumlah}
BEGIN
Jumlah : =23; {Memberi nilai tehadap variable}
Writeln (Jumlah) ; {Menampilkan isi variable}
END.

3. Program TesJum;
{---------------------------------------------------------------------------------}
{Contoh untuk menunjukkan hasil operasi penjumlahan }
{ untuk berbagai kemungkinan tipe operand }
{---------------------------------------------------------------------------------}
USES WinCrt ;
BEGIN
ClrScr;
Writeln ( ‘4 + 2 = ‘, 4 + 2 ) ;
Writeln ( ‘4.0 + 2 = ‘, 4.0 + 2) ;
Writeln ( ‘4 + 2.0 = ‘, 4 + 2.0 ) ;
Writeln ( ‘4.0 + 2.0 = ‘, 4.0 +2.0 ) ;
END

4. Program TesKali ;
{ ----------------------------------------------------------------------------}
{ Contoh untuk menunjukkan hasil operasi perkalian }
{ untuk berbagai kemungkinan tipe operand }
{ ---------------------------------------------------------------------------}
USES WinCrt ;
BEGIN
ClrScr;
Writeln ( ‘4 * 2 = ‘, 4 * 2 ) ;
Writeln ( ‘4.0 * 2 = ‘, 4.0 * 2 ) ;
2
Algoritma dan Pemograman

Writeln (‘ 4 * 2.0 = ‘, 4 * 2.0 ) ;


Writeln (‘ 4.0 * 2.0 = ‘, 4.0 * 2.0 ) ;
END.

B. Buatlah program untuk menampilkan kalimat berikut :

“ Selamat Datang di Lab. Komputer Teknik Elektro


Fakultas Teknik Universitas Negeri Padang”

3
Algoritma dan Pemograman

EKSPRESI DAN PERNYATAAN

2.1 Ekspresi Aritmatik


Setiap operator Pascal memiliki derajat pengutamaan. Apabila dua buah
operator saling bersebelahan, yang memiliki pengutamaan yang lebih tinggi akan
dilaksanakan lebih dahulu. Berikut adalah susunan operator berdasarkan
pengutamannya, dimulai dari yang paling terendah.
 Operator relasional ( =, <, >, <=, >=, <> )
 +, -, OR
 *, /, DIV, MOD, AND
 NOT
 ()

sebagai contoh :
Ekspresi Arti Hasil
2* 3 + 2 (2*3) + 2 8
2* 3 + 2 * 4 (2*3) + (2 * 4) 14
6* 2 DIV 3 (6 * 2) DIV 3 4
3+ 4 – (5 * 2 – 1) (3 + 4) – ((5 * 2) – 1) -2
4.0 / 3.0 * 2 (4.0 / 3.0) * 2.0 2.6666
Jadi, tanda ( ) memiliki pengutamaan tertinggi, diikuti dengan tanda pengalian,
pembagian, dan kemudian penjumlahan dan pengurangan.

2.2 Penggunaan Fungsi Baku

Dalam penggunaan fungsi baku, perhatikan tipe data argument fungsi yang
bersangkutan. Tipe hasil harus berlaku bagi tipe ekspresi yang ditinjau. Kedua tipe
(argument dan hasil) tidak perlu sama. Berikut ini adalah table tipe data yang sesuai
bagi setiap fungsi Pascal yang ditunjukkan.

Fungsi Pengoperasi / Tipe Hasil


ABS Bilangan bulat, bilangan nyata Sama seperti pengoperasi
ARCTAN Bilangan bulat, bilangan nyata Bilangan nyata
CHR Bilangan bulat Karakter
COS Bilangan bulat, bilangan nyata Bilangan nyata
EOF Berkas teks Boolean
EOLN Berkas teks Boolean
EXP Bilangan bulat, bilangan nyata Bilangan nyata
LN Bilangan bulat, bilangan nyata Bilangan nyata
ODD Bilangan bulat Boolean
ORD Scalar kecuali bilangan nyata Bilangan bulat
PRED Scalar kecuali bilangan nyata Sama seperti pengoperasi
ROUND Bilangan nyata Bilangan bulat
SIN Bilangan bulat, bilangan nyata Bilangan nyata
SQR Bilangan bulat, bilangan nyata Sama seperti pengoperasi
SQRT Bilangan bulat, bilangan nyata Bilangan nyata
SUCC Scalar kecuali bilangan nyata Sama seperti pengoperasi
TRUNC Bilangan nyata Bilangan bulat

2.3. Ekspresi Boolean


4
Algoritma dan Pemograman

Ketiga operator logika AND, OR dan NOT beroperasi hanya pada nilai
Boolean (BETUL atau SALAH).
Dalam kasus ekspresi Boolean, Pascal menentukan sebuah pernyataan
tambahan. Semua ekspresi bagian (subexpression) harus diletakkan didalam tanda
kurung kecuali jika diawali dengan NOT.
Misalnya, K, L, M, dan N didefinisikan sebagai variable–variable Boolean. Contoh
berikut adalah ekspresi Boolean :

K AND L (suatu operator Boolean digunakan)


NOT K
M = N (suatu operator relasional digunakan)

Contoh yang lebih kompleks tentang ekspresi Boolean adalah :

K AND M = NOT N (tiga operator digunakan)


I*J=2 (suatu ekspresi aritmatik dibandingkan dengan 2)
K AND M OR NOT
(A = B) OR (C = D) AND (A – C = 0) (Subexpression diberi tanda kurung)

2.4. Latihan dan Tugas


1. apa efek dari program berikut?

PROGRAM BOOLEANTEST (OUTPUT);


USES WINCRT;
VAR P,Q, R,S, HASIL : BOOLEAN;
BEGIN (*BOOLEANTEST*)
P := TRUE;
Q := P;
R := FALSE;
S := R;
WRITELN;WRITELN; (* LONCAT 2 BARIS *)
HASIL := NOT(P);
WRITELN(HASIL);
HASIL := NOT (NOT (Q));
WRITELN(HASIL);
HASIL := Q OR S;
WRITELN(HASIL)
HASIL := P AND S;
WRITELN(HASIL);
HASIL := P AND Q AND R;
WRITELN(HASIL);
HASIL := (P OR R)AND Q;
WRITELN(HASIL);
END (*BOOLEANTEST*)

2. Program Test Mode


Program TesMod;
{----------------------------------------------------------------------- }
{Contoh untuk menunjukkan hasil operasi MOD }
{Untuk berbagai kemungkinan tipe operand }
{------------------------------------------------------------------------}
USES WinCrt;

BEGIN
5
Algoritma dan Pemograman

ClrScr;
Writeln ( ‘6 MOD 3 = ‘, 6 MOD 3 );
Writeln ( ‘7 MOD 3 = ‘, 7 MOD 3 );
Writeln ( ‘8 MOD 3 = ‘, 8 MOD 3 );
Writeln ( ‘9 MOD 3 = ‘, 9 MOD 3 );
END.

5. Program Prioritas

Program Prioritas;
{----------------------------------------------------------------------}
{Contoh untuk menunjukkan efek pemberian tanda }
{kurung pasa suatu ekspresi }
{----------------------------------------------------------------------}
USES WinCrt;
BEGIN
ClrScr;
Writeln ( 1 + 2 * 3 ) ;
Writeln ( (1 + 2) * 3 ) ;
END.

6. Program over

Program over;
{----------------------------------------------------------------------}
{ Contoh untuk menunjukkan terjadinya over }
{ }
{----------------------------------------------------------------------}
USES WinCrt;
VAR
TotalHarga : Integer ;
HargaSatuan : Integer ;

BEGIN
ClrScr;
HargaSatuan : = 32767 ;
TotalHarga : = 2 * HargaSatuan ;
Writeln ( ‘Total = ‘, TotalHarga) ;
END.

7. Buatlah Program untuk menghitung volume sebuah balok, dimana p=25 cm, l=10
cm dan t=15 cm.

6
Algoritma dan Pemograman

MASUKAN DAN KELUARAN

3.1. READ dan READLN


Pernyataan READ dan READLN dinamakan pernyataan masukan. Kedua
pernyataan ini melayani pembacaan nilai dari suatu file masukan. Sebuah contoh
pernyataan READ adalah :

PROGRAM SUM(INPUT, OUTPUT);


VAR A, B, TOTAL : INTEGER;
BEGIN
READ(A, B);

Pernyataan READ dan READLN harus dituliskan dengan cara khusus.


Seperti yang diperlihatkan pada contoh diatas. READ atau READLN biasanya diikuti
dengan tanda kurung buka, satu atau lebih variable yang dipisahkan dengan tanda
koma, dan diakhiri dengan tanda kurung tutup. Hasil dari READ atau READLN adalah
untuk membaca nilai dari INPUT dan menetapkan nilainya pada variable. Berikut
adalah contoh tambahan pernyataan READ dan READLN :

READ(A, B, C);
READLN(TAXRATE, GROSSINGCOME);

3.2. WRITE dan WRITELN


Telah kita jumpai beberapa contoh penggunaan pernyataan WRITE dan
WRITELN seperti :

PROGRAM SUM(INPUT, OUTPUT);


VAR A, B TOTAL : INTEGER;
BEGIN
WRITELN(‘Masukan 2 bilangan untuk dijumlahkan …’);
READ(A, B);
TOTAL :=A + B;
WRITELN(‘Jumlah dari’, A ‘dan’, B, ‘adalah’, TOTAL)
END.

Seperti pernyataan READ dan READLN, pernyataan WRITE dan WRITELN


biasanya diikuti oleh sebuah tanda kurung buka dan sebuah string atau nilai yang akan
dicetak, dipisahkan dengan koma, dan diakhiri dengan tanda kurung tutup.

Jika WRITE digunakan secara berurutan, maka teks yang akan ditulis pada
baris yang sama. Penggunaan WRITELN akan memaksa teks berpindah ke awal baris
berikutnya, misalnya :

WRITE(‘INI ADALAH SEBUAH);


WRITE(‘CONTOH’);

Akan menghasilakan : INI ADALAH SEBUAH CONTOH


Dan :
WRITELN(‘INI ADALAH SEBUAH )
WRITE(‘CONTOH’);
Akan menghasilkan : INI ADALAH SEBUAH
CONTOH
3.3. latihan dan Tugas
7
Algoritma dan Pemograman

1. Kerjakan program dibawah ini!


PROGRAM INEXAMPLE(INPUT, OUTPUT);
VAR I,J:INTEGER;
A,B:REAL;
M,N:CHAR;
BEGIN
READ(I,J);
READ(M,N);
READLN(A,B);
END.
Masukkan input berikut melalui keyboard :
4 92SY
1.23 -5.6

2. Apa hasil dari program berikut :


PROGRAM WRITE ( INPUT, OUTPUT );
VAR I : INTEGER;
A : REAL;
C : CHAR;
BEGIN
I : 12;
A : 2.1;
C : ‘?’;
WRITE ( ‘INDENT ‘ : 10, 1 : 3, A : 4, C : 2 )
END.

Program Konversi;
USES WINCRT;
TYPE
MENU = ‘A’..’D’ ;
VAR
METER, JAM, MNT, FEET, FAHRENHEIT, CELCIUS :REAL;
PILIHAN : MENU;
BEGIN
CLRSCR ;
WRITELN (‘MENU KONVERSI UKURAN’) ;
WRITELN ;
WRITELN (‘[A]. MENGHITUNG DARI MENIT---->JAM’) ;
WRITELN (‘[B]. MENGHITUNG DARI FEET---->METER’) ;
WRITELN (‘[C]. MENGHITUNG DARI FAHRENHEIT---->CELCIUS’) ;
WRITELN (‘[D]. QUIT’) ;
WRITELN (‘MASUKAN PILIHAN ANDA : ‘) ;READLN (PILIHAN)
CASE PILIHAN OF
‘A’, ‘a’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI MENIT KE JAM’) ;
WRITELN (‘--------------------------------------------------‘) ;
WRITELN (‘MASUKAN WAKTU DALAM MENIT =’) ;READLN (MNT) ;
JAM : = MNT / 60 ;
MNT : = FARC (JAM) * 60 ;
WRITELN ;
WRITELN (‘ ‘, MNT :4:2, ‘MENIT ADALAH :’) ;
WRITELN (‘ ‘, INT (JAM) :3:0, ‘JAM’, MNT : 2:0, ‘MENIT’) ;
8
Algoritma dan Pemograman

END ;
‘B’, ‘b’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI FEET KE METER’) ;
WRITELN (‘----------------------------------------------------‘) ;
WRITELN (‘MASUKAN UKURAN DALAM FEET :’) ; READLN
(FEET) ;
METER : = FEET*0.3048 ;
WRITELN (‘ ‘, FEET :4:2, ‘FEEY ADALAH =
‘, METER : 3 : 4) ; WRITELN ;

END ;
‘C’, ‘c’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI FAHRENHEIT KE CELCIUS’) ;
WRITELN (‘------------------------------------------------------------------‘) ;
WRITELN (‘MASUKAN DERAJAT DALAM FAHRENHEIT=’) ;
READLN (FAHRENHEIT) ;
CELCIUS :=5 / 9* (FAHRENHEIT – 32 ) ;
WRITE(‘ ‘, FAHRENHEIT : 4:2, ‘FAHRENHEIT ADALAH =’) ;
WRITELN (‘ ‘, CELCIUS :3:1, ‘CELCIUS’) ;
END ;
END ; { END CASE }
READLN ;
END.
‘D’, ‘d’ :begin
Clrscr ;
Writeln

2. Program Array 1

Program array_kesatu ;
Uses crt ;

Var
Nama_barang : array [1..10] of string [20] ;
Harga, jumlah, bayar : array [1..10] of integer ;
Total : real ;
Barang : integer ;

Begin
Clrscr ;
Write (‘banyaknya barang :’ ) ; readln (barang) ;
For i :=1 to barang do
Begin
Writeln (‘masukkan data ke ‘,i) ;
Write (‘nama barang :’) ; readln (nama_barang [ i ] ) ;
Write (‘Harga :’) ; readln (harga [ i ] ) ;
Write (‘jumlah :’) ; readln (jumlah [ i ] ) ;
End ;
Total :=0;
9
Algoritma dan Pemograman

For I :=1 to barang do


Begin
Bayar [i] := harga [i] * jumlah [i] ;
Total :=total+bayar [i] ;
End ;
Clrscr ;
Writeln (‘=======================================================’) ;
Writeln (‘No’,’ ‘, ‘Nama barang’, ‘ ‘, ‘Harga’, ‘ ‘, ‘jumlah’, ‘ ‘, ‘bayar’) ;
Writeln (‘=======================================================’) ;
For I :=1 to barang do
Begin
Writeln (I, ‘ ‘, nama_barang [i], ‘ ‘, harga [i], ‘ ‘, jumlah [i], ‘ ‘,
bayar [i], ‘ ‘) ;
End ;
Writeln (‘--------------------------------------------------------------------------------------‘) ;
Writeln (‘ total :’, total :10:0, ‘ ‘) ;
Writeln (‘===================================================’) ;
Readln ;
End.

10
Algoritma dan Pemograman

STRUKTUR KONTROL

4.1. Pernyataan REPEAT


Pernyataan REPEAT dapat digunakan untuk mengulang sekelompok
pernyataan dalam sebuah program. Satu atau beberapa pernyataan boleh muncul
diantara kata REPEAT dan UNTIL. Kondisi yang bersangkutan dicirikan dengan
ekspresi Boolean. Ekspresi Boolean dapat menggunakan ke-enam operator
relasional :
= > < >= <= <>
atau sembarang operator Boolean yang sah. Berikut ini adalah sebuah contoh program
yang akan menghitung jumlah dari ke-25 integer pertama.

Contoh
PROGRAM SUM25 ( INPUT, OUTPUT ) ;
(* PENJUMLAHAN DARI 25 INTEGER PERTAMA*)
VAR SUM, NUMBER : INTEGER;
BEGIN
SUM : = 0 ;
NUMBER : = 1 ;
REPEAT
SUM : = SUM + NUMBER;
NUMBER : = NUMBER + 1 ;
UNTIL NUMBER > 25;
WRITELN ( ‘JUMLAH DARI 25 INTEGER PERTAMA ADALAH’, SUM)
END.

Ingatlah bahwa dalam pernyataan REPEAT UNTIL, pernyataan-pernyataan


yang terletak antara REPEAT dan UNTIL akan dilaksanakan sekurang-kurangnya satu
kali. Kondisi yang sedang diuji akan diperiksa hanya pada akhir pengulangan yang
bersangkutan. Akan kita lihat bahwa pernyataan WHILE membolehkan kita melakukan
hal yang sebaliknya, yakni menguji kondisi pada awal pengulangan.

4.2. Pernyataan WHILE


Berikut ini adalah beberapa contoh program yang menggunakan pernyataan
WHILE.
Contoh 1.
PROGRAM SUM25B ( INPUT, OUTPUT ) ;
( *PENJULAHAN DARI 25 INTEGER PERTAMA* )
VAR SUM, NUMBER : INTEGER ;
BEGIN
SUM : = 0 ;
NUMBER : = 1 ;
WHILE NUMBER < 26 DO
BEGIN
SUM : = SUM + NUMBER;
11
Algoritma dan Pemograman

NUMBER : = NUMBER +1
END ;
WRITELN ( ‘JUMLAH DARI 25 INTEGER PERTAMA ADALAH’,SUM)
END ;

Contoh 2. Program average

PROGRAM AVERAGE ( INPUT, OUTPUT ) ;


VAR AVERAGE : REAL ;
SUM, NUMBER, MAX : INTEGER ;
BEGIN
READLN (MAX) ;
SUM : = 0 ;
NUMBER : = 0 ;
WHILE NUMBER < MAX DO
BEGIN
NUMBER : = NUMBER + 1 ;
SUM : = SUM + NUMBER
END ;
AVERAGE : = SUM / MAX ;
WRITELN ( ‘RATA-RATA DARI YANG
PERTAMA’ ,MAX, ‘ADALAH’ ,AVERAGE )
END .

4.3. Pernyataan FOR


Contoh sederhana penggunaan pernyataan FOR adalah :

SUM : = 0 ;
FOR I : = 1 TO N DO SUM := + 1;

Efek pernyataan ini adalah untuk melaksanakan pernyataan yang mengikuti


DO sebanyak N kali. Pada waktu pelaksanaan pernyataan tersebut pertama kali, I
bernilai 1. kali yang kedua I bernilai 2, dan seterusnya. Jadi, SUM memperoleh nilai
jumlah integer dari 1 hingga N. Berikut ini adalah beberapa contoh pernyataan FOR.
Contoh 1. Pernyataan FOR dalam program AVERAGE.

PROGRAM AVERAGE2 ( INPUT, OUTPUT ) ;


VAR AVERAGE : REAL ;
I, MAX, SUM : INTEGER ;
BEGIN
READLN (MAX) ;
SUM : = 0 ;
FOR I : = I TO MAX DO
BEGIN
SUM : = SUM + 1
END ;
AVERAGE : = SUM / MAX ;
WRITELN ( ‘RATA-RATA DARI YANG
PERTAMA’ ,MAX, ‘ADALAH’ ,AVERAGE )
END . ( *AVERAGE2* )

Contoh 2. Program MULTIPLICATION TABLE

12
Algoritma dan Pemograman

PROGRAM MULTABLE ( INPUT, OUTPUT ) ;


VAR I, J, K, M, N, : INTEGER ;
BEGIN
READLN ( M, N ) ;
FOR I : = 1 TO M DO
BEGIN
WRITELN ;
FOR J : = 1 TO N DO
BEGIN
K:=J * I;
WRITELN ( J, ‘X’ ,I, ‘=’ , K )
END
END
END . ( *MULTABLE* )

4.4 Pernyataan IF dan IF-ELSE


Pernyataan IF digunakan jika terdapat dua pernyataan yang akan
dilaksanakan dalam suatu program. Jika ekspresi Boolean yang dicirikan setelah IF
benar, maka kondisi 1 akan dilaksanakan. Namun jika kondisinya tidak benar maka
kondisi 2 yang akan dilaksanakan. Berikut adalah contoh penggunaan pernyataan IF.
Contoh
PROGRAM COUNT ( INPUT, OUTPUT ) ;
VAR COUNT, NUMBER : INTEGER ;
BEGIN
COUNT : = 0 ;
REPEAT
READLN ( NUMBER ) ;
IF NUMBER > 10 THEN COUNT : = COUNT + 1
UNTIL NUMBER = 0 ;
WRITELN ( ‘NUMBERS> 10 :’, COUNT )
END .

Untuk pernyataan IF-ELSE, hal yang berbeda secara mencolok adalah


pernyataan IF tidak mengakibatkan pelaksanaan suatu pengulangan. Pernyataan IF
hanyalah menguji suatu kondisi. Jika kondisi 1 benar, maka pernyataan setelah IF
dilaksanakan, namun jika kondisi tersebut salah, maka pernyataan setelah ELSE yang
dilaksanakan (kondisi 2).

4.5. Pernyataan CASE


Pernyataan CASE umumnya digunakan apabila suatu variable atau ekspresi
bisa bernilai salah satu dari n buah nilai. Nilai ini dapat berupa scalar tak nyata seperti
karakter, integer Boolean.

Contoh
PROGRAM SPELLMONTH ( INPUT, OUTPUT ) ;
VAR MONTH : INTEGER ;
BEGIN
WRITELN ( ‘KETIK BULAN DALAM ANGKA’ ) ;
13
Algoritma dan Pemograman

READLN (MONTH) ;
IF ( MONTH > 12 ) OR ( MONTH < 1 )
THEN WRITELN ( ‘TIDAK ADA BULAN YANG SEPERTI ITU’ )
ELSE
CASE MONTH OF
1 : WRITELN ( ‘JANUARY’ ) ;
2 : WRITELN ( ‘FEBRUARY’ ) ;
3 : WRITELN ( ‘MARCH’ ) ;
4 : WRITELN ( ‘APRIL’ ) ;
.
.
.
12 : WRITELN ( ‘DECEMBER’ ) ;
END ( *CASE* )
END . ( *SPELLMONTH* )

Contoh di atas menunjukkan bahwa tergantung dari nilai bilangan bulan,


salah satu dari 13 peristiwa akan terjadi :
- Satu dari ke-12 dari satu tahun akan muncul;
- Sebuah pesan akan muncul jika nilai bilangan bulan yang diinginkan tidak
benar.
4.6. Pernyataan GOTO
Kadang-kadang diperlukan cara untuk meloncati bagian tertentu dari suatu
program, melompat keluar dari suatu pengulangan, atau kembali ke titik tertentu.
Kegiatan ini dinamakan pencabangan tak bersyarat, dan dicapai dengan
menggunakan pernyataan GOTO.
Pernyataan GOTO mencirikan pernyataan yang mana yang akan
dilaksanakan berikutnya. Sebuah label digunakan untuk memungkinkan pernyataan
GOTO mencirikan pernyataan yang mana yang harus dilaksanakan. Label adalah
bilangan bulat yang diikuti dengan tanda (:) dan diletakkan sebelum suatu pernyataan
dalam program. Label tidak boleh panjang dari 4 digit. Misalnya:

GOTO 100;

100: statement
GOTO 100 akan mengakibatkan dilaksanakannya pernyataan berlabel 100 sebagai
tindakan berikutnya.

4.7. Latihan dan Tugas


1. Kerjakan semua contoh program di atas!
2. Tuliskan hasil dari program-program tersebut!

14
Algoritma dan Pemograman

OPERASI MATEMATIKA

5.1. Operasi Matematika

Keseluruhan operator yang tersedia pada Turbo Pascal dapat dilihat pada tabel
dibawah ini :

Operator Arti Prioritas


* Kali 1
/ Bagi (real) 2
DIV Bagi (bulat) 2
MOD Sisa Pembagi 2
+ Tambah 3
- Kurang 3

Operasi dasar dasar seperti penjumlahan, pengurangan, perkalian dan pembagian


dapat dilaksanakan dengan menggunakan operator-operator tersebut diatas, misalnya
untuk menghitung :

53
diperlukan ekspresi sebagai berikut :

5*5*5

mengingat Turbo Pascal tidak menyediakan operator perpangkatan.


Operasi yang tidak dapat dilaksanakan dengan operator yang tersedia dapat
dilaksanakan dengan menggunakan fungsi-fungsi yang disediakan Turbo Pascal.

5.2. Pernyataan Inc dan Dcr

Kiranya anda sudah terbiasa menggunakan pernyataan seperti :

X := x + 1;
Y := y – 2;

Pada contoh pertama, nilai x dinaikkan sebesar 1 terhadap nilai semula, pada contoh
kedua nilai Y diturunkan sebesar 2.

Bentuk seperti diatas dapat diwakili dengan pernyataan Inc atau Dec, kalau X ataupun
Y serta nilai penambahan atau pengurangan bertipe integer, bentuk pernyataan Inc :

Inc(Variabel)
Inc(Variabel,Nilai)

Pada Bentuk pertama, nilai Variabel akan dinaikkan sebesar satu. Bila menggunakan
bentuk kedua, bentuk pertama tersebut identik dengan :

Inc(Variabel,1)

Parameter Nilai menyatakan besarnya nilai yang akan ditambahkan terhadap isi
semula dari Variabel. Adapun bentuk pernyataan Dcr :

Dec(Variabel)
Dec(Variabel,Nilai) 15
Algoritma dan Pemograman

Pada bentuk pertama, nlai Variabel akan diturunkan sebesar satu. Bila menggunakan
bentuk kedua, bentuk pertama tersebut identik dengan :

Dec(Variabel,1)

Parameter Nilai menyatakan besarnya nilai untuk mengurangkan terhadap isi semula
dari Variabel.
Dengan demikian pernyataan :

X := x + 1;
Y := y – 2;

Dapat ditulis menjadi :

Inc(x); ( atau: Inc(x); )


Dec(y, 2);

5.3. Fungsi Matematika

Turbo Pascal menyediakan sejumlah fungsi matematika, sebagaimana dapat dilihat


pada Tabel berikut :

Fungsi Keterangan Contoh


Digunakan untuk memperoleh nilai mutlak (absolut) Abs(5.5)  5.5
Abs(x) x . Dalam hal ini tipe hasil sesuai dengan tipe Abs(-5.5)  5.5
parameter Abs(-157)  157
Untuk memperoleh arctangent dari nilai x. Hasilnya
ArcTan(x) berupa sudut yang dinyatakan dalam satuan radian.
Baik parameter maupun hasilnya bertipe Real.
Untuk memperoleh nilai cosinus dari sudut x. Sudut
Cos(x) dinyatakan dalam Radian. Parameter dan hasilnya
bertipe Real.
Menghasilkan nilai eksponensial dari x (℮x). Baik
Exp(x)
parametermaupun hasilnya bertipe real.
Frac(123.456)  0.456
Memberikan bagian pecahan dari argumen x. Baik
Frac(x) Frac(-123.456) 
parameter maupun hasilnya bertipe real.
-0.456
Mendapatkan bagian bulat dari argumen x. Hasilnya Int(50.6)  50
Int(x)
bertipe Real. Int(-50.6)  -50
Menghasilkan logaritma alami dari x (e Log x). Baik
Ln(x)
parameter maupun hasilnya bertipe Real
Pi Menghasilkan nilai  (3,14159265356)
Melakukan pembulatan terhadap parameter bertipe
Round(50.6)  51
Round(x) real ke bilangan bulat terdekat. Hasilnya bertipa
Round(-50.6)  -51
LongInt.
Untuk memperoleh nilai sinus dari sudut x (dalam
Sin(x)
radian)
Untuk memperoleh nilai kuadrat dari x. Tipe Sqr(5)  25
Sqr(x)
Hasilnya sesuai dengan tipe parameter. Sqr(5.0)  25.0
16
Algoritma dan Pemograman

Untuk memperoleh akar kuadrat dari x. Hasil dan


Sqrt(x) Sqrt(25)  5.0
parameternya bertipe Real
Memperoleh nilai bulat dari parameter bertipe Real. Trunc(123.6)  123
Trunc(x)
Tipe hasilnya berupa LongInt Trunc(-123.6)  -123

Beberapa fungsi lain yang berkaitan dengan bilangan dapat dilihat pada tabel berikut
ini :

Fungsi Keterangan
Odd(bil) Fungsi ini memberikan hasil berupa True kalau bil (bertipeLongInt) berupa
bilangan ganjil
Random( Fungsi ini memberikan hasil berupa bilangan acak (bertipe word) yang
bil) nilainya lebih besar atau sama dengan nol tetapi kurang dari bil. Dalam hal
ini, bil bertipe Word.
Random Fungsi ini memberikan hasil berupa bilangan acak yang lebih besar atau
sama dengan nol, tetapi kurang dari 1.

Beberapa persamaan matematika dan ekspresi Turbo Pascal dapat dilihat dibawah ini :

Persamaan Ekspresi pada Turbo


Matematika pascal
(a  b) / c Sqrt( (a+b)/c)
b 2  4ac
Sqrt(sqr(b)-4*a*c)/(2*a)
2a
Sqr(in(theta)) + 2 *
Sin2 + 2 Cos
Cos(theta)
Sinh(x) (exp(x) – exp(-x)) / 2
2
y
 5y  2 y*y*y/2–5*y+2
2

5.4. Membangkitkan bilangan Acak

Untuk mendukung pembangkitan bilangan acak, Turbo Pascal menyediakan :


Pernyataan Random
Fungsi Random
Variabel RandSeed

Fungsi Random berguna untuk memperoleh sebuah bilangan acak. Pernyataan


Randomize dipakai untuk memberi nilai awal buat pembangkitan bilangan
acakberdasarkan jam sistem. Dengan menggunakan prosedure ini akan diperoleh
bilangan acak yang benar-benar acak untuk setiap waktu.

5.5. Eksponensial dan Logaritma

Dua fungsi yang tersedia pada Turbo Pascal untuk melakukan operasi eksponensial
dan logaritma adalah Exp dan Ln.
Exp(x),untuk memperoleh nilai ex (eksponensial dari x)
Ln(x),untuk memperoleh logaritma alami dari x (e Log x)

Berdasarkan fungsi Ln, kita dapat melakukan operasi logaritma berbasis sepuluh.
Penyelesaiannya :
10
Log x = eLog x / eLog 10
17
Algoritma dan Pemograman

Fungsi Exp dapat dimanfaatkan untuk menghitung seperti sinus hiperbolis.


Manfaat yang lain adalah untuk menghitung :

51/3
Solusi persoalan diatas dapat dikerjakan melalui pengandaian :

Xn = y
Dengan y adalah hasilnya. Berdasarkan persamaan diatas, maka :

Ln xn = Ln y
Atau ;

n Ln Xn = Ln y
dari persamaan yang terakhir ini, y dapat dperoleh, yaitu melalui rumus :

y = e(n Ln x)

Pernyataan Pascal untuk persamaan diatas berupa :

Y := exp (n * Ln(x));

5.6. Fungsi COS, SIN, PI dan ARCTAN

Keempat fungsi ini merupakan fungsi trigonometri yang tersedia pada Turbo Pascal.

Cos(x), untuk memperoleh nilai cosinus dari x (x dalam radian)


Sin(x), untuk memperoleh nilai sinus dari x (x dalam radian)
Pi, untuk memperoleh nilai 
ArcTan(x), untuk memperoleh arctangent dari nilai x

Kedua fungsi pertama meminta argumen berupa sudut. Jika sudut dalam satuan
derajat, sudut ini perlu dikonversi menjadi radius :

Radian = derajat *  / 180

Dengan  dapat diperoleh melalui Pi.


Contoh penggunaan fungsi Sin dan Cos adalah untuk menghitung lintasan peluru yang
ditembakkan dengan kecepatan awal V0 dan sudut tembakan berupa  derajat. Jarak
jatuhnya peluru dari tempat penembakan dapat dihitung melalui rumus :

Jarak = 2 x Vo2 x sin() x Cos() / g

Dengan g adalah gaya gravitasi bumi.

Tugas dan Latihan.

Kerjakan Program-program berikut ini dancatat hasilnya serta berikan penjelasannya.

18
Algoritma dan Pemograman

1. Program Acak1;
{------------------------------------------------------------------------------------------}
{ Pembangkitan bilangan acak yang bersifat menetap }
{ (hasil selalu sama setiap kali program dijalankan) }
{-----------------------------------------------------------------------------------------}
USES Crt;
BEGIN
ClrScr;
RandSeed:= 6; {-- Nilai awal u/ pembangkitan acak --}
WriteLn(Random);
WriteLn(Random);
WriteLn(Random);
Write(‘ Tekan Enter ‘);
ReadLn;
End.

2. Program Acak2;
{------------------------------------------------------------------------------------------}
{ Pembangkitan bilangan acak yang bersifat }
{ selalu berubah dari waktu ke waktu }
{-----------------------------------------------------------------------------------------}
USES Crt;
BEGIN
ClrScr;
Randomize; {-- Nilai awal acak --}
WriteLn(Random);
WriteLn(Random);
WriteLn(Random);
Write(‘ Tekan Enter ‘);
ReadLn;
End.
3. Program Tebak;

{--------------------------------------------------------------------------------}
{ Contoh Pemakaian bilangan acak }
{ untuk membentuk permainan tebakan }
{--------------------------------------------------------------------------------}

USES Crt;
VAR
Acak, { -- Nilai acak dari komputer --}
Jawaban : Integer; { -- Nilai Jawaban Pemakai --}
Tombol : Char;
BEGIN
REPEAT
ClrScr;
WriteLn(‘Permainan Menebak Angka’);
WriteLn(‘Saya akan membangkitkan bilangan acak’);
WriteLn(‘Antara 1 sampai dengan 4’);

REPEAT
Acak := RANDOM(5);
UNTIL Acak <>0;
WriteLn(‘Sekarang cobalah untuk menebak’);
Write(‘Angka berapa ? ‘);
19
Algoritma dan Pemograman

ReadLn(Jawaban);
IF Acak = Jawaban THEN
WriteLn(‘Selamat ! Jawaban Anda Benar’);
ELSE
WtiteLn(‘Belum benar tuh. Jawabannya = ‘, Acak);

WriteLn;
WriteLn(‘Tekan T untuk mengakhiri’);
WriteLn(‘Atau tombol lain untuk mengulangi’);
Tombol:=ReadKey;
UNTIL (Tombol = ‘T’) OR (Tombol = ‘t’)
END.

4. Program Akar;

{------------------------------------------------------------------------------------}
{ Contoh Pemakaian Exp dan Ln }
{ untuk menghitung akar suatu nilai }
{-----------------------------------------------------------------------------------}

USES Crt;

BEGIN
ClrScr;

WriteLn(‘Akar kuadrat dari 25 = ‘, Exp(1/2 * Ln (25)));


WriteLn(‘Akar tiga dari 25 = ‘, Exp(1/3 * Ln(25)));

ReadLn;
END.

5. Program Peluru;
{---------------------------------------------------------------------------------------------------------
--------------}
{ Contoh Pemakaian fungsi SIN dan COS untuk
}
{ menghitung jarak jatuhnya peluru
}
(---------------------------------------------------------------------------------------------------------
-------------}
USES Crt;

CONST
GRAVITASI = 9.8;
VAR
Rad, Derajat, Kecepatan, Jarak : Real;

BEGIN
ClrScr;
WriteLn(‘Menghitung Jarak Jatuhnya Peluru’);
Write(‘Sudut penembakan (Derajat) : ‘);
ReadLn(Derajat);
Write(‘Kecepatan Tembak (m/detik) : ‘);
ReadLn(Kecepatan);
20
Algoritma dan Pemograman

Rad:=Derajat * Pi / 180;
Jarak := 2 * Sqr (Kecepatan) * Sin(Rad) * Cos(Rad) / GRAVITASI;

WriteLn(‘ Peluru jatuh pada Jarak = ‘, Jarak : 0 : 4);

ReadLn;
END.

6. Program Menara;
{---------------------------------------------------------------------------------------------------------
--------------}
{ Contoh Pemakaian SIN dan COS untuk
}
{ menghitung tinggi menara
}
(---------------------------------------------------------------------------------------------------------
-------------}
USES Crt;

VAR
Jarak, Alfa, Rad, Tinggi : Real;
BEGIN
ClrScr;
WriteLn(‘Menghitung Tinggi Menara’);
Write(‘ Jarak dari titik pengukuran hingga menara = ‘);
ReadLn(Jarak);
Write(‘Sudut antara tanah dan titik puncak (derajat) = ‘);
ReadLn(Alfa);

Rad:= Alfa * Pi / 180;


Tinggi := Sin(Rad) / Cos(Rad) * Jarak;

WriteLn(‘Tinggi Menara = ‘, Tinggi : 0 : 4);


ReadLn
END.

21

Anda mungkin juga menyukai