Modul Algoritma Dan Pemrograman 4 PDF Free
Modul Algoritma Dan Pemrograman 4 PDF Free
2
1. Membuka Jendela Utama
Untuk menulis program pada jendela utama Turbo Pascal,
pertama kali adalah buka jendela Turbo Pascal melalui
program
3
Jendela utama digunakan untuk membuat kode program yang
terdiri dari menu File, Edit, Search, Run, Compile, Option,
Window dan Help.
c. Pilih direktori
d. Tuliskan nama file
e. Pilih OK
4
3.
Meng-Compile program
Setelah program dibuat, maka perlu di-compile untuk
mengetahui kesalahan-kesalahan program. Jika terjadi
kesalahan, maka baris kesalahan akan ditunjukkan dengan
adanya garis merah. Langkah-Langkah meng-compile adalah
sebagai berikut.
a. klik Menu Compile
b. pilih Compile
3. Menjalankan program
5
Run digunakan untuk menjalankan program, dan menghasilkan
file berekstensi .exe, yang selanjutnya file berekstensi .exe
dapat di jalan secara langsung.
Untuk menjalankan program, ikuti langkah-langkah berikut.
a. klik Menu Run
b. pilih Run
Program pascal;
uses wincrt;
begin
Writeln ( ‘saya pascal’ );
Writeln ( ‘-----------‘ );
end.
6
Compile program untuk menelusuri kesalahan-kesalahan
7
Latihan
Jurusan Matematika
Fakultas Sains dan Teknologi
UIN Sultan Syarif Kasim Riau
Disimpan dengan nama latihan1.pas.
------------------------
Disimpan dengan nama latihan2.pas
8
BAB II
STRUKTUR PASCAL, UNIT DAN STATEMENT
1. Judul program
2. Blok program
a. Bagian deklarasi
- deklarasi label
- deklarasi konstanta
- deklarasi tipe
- deklarasi variable
b. Bagian pernyataan
Program nama_program;
{Deklarasi}
type
var
const
label
Begin
Statement;
Statement;
End.
9
Contoh
Program pascal;
uses wincrt;
begin
Writeln ( ‘saya pascal’ );
Writeln ( ‘-----------‘ );
end.
Contoh
Program Pascal2 ;
Uses wincrt;
Begin
Writeln( ‘matematika’ );
Writeln( ‘----------‘ );
Writeln;
Writeln(‘uin suska riau’);
Writeln(‘--------------’);
End.
2. Deklarasi
Bagian deklarasi digunakan bila didalam program
menggunakan pengenal (identifier) yang dapat berupa label,
konstanta, tipe, variable.
a. Deklarasi variabel
Variabel adalah identifier yang berisi data yang dapat diubah-
ubah nilainya didalam program. Menggunakan kata cadangan
Var sebagai judul didalam bagian deklarasi variable dan
10
diikuti oleh satu atau lebih identifier yang dipisahkan koma,
diikuti dengan titik dua dan tipe dari datanya diakhiri dengan
titik koma.
Contoh
Program variabel;
uses wincrt;
var
a, b, c : real;
begin;
a:=1; b:=2;
c:= a+ b;
writeln(c);
end.
b. Deklarasi Konstanta
Definisi konstanta diawali dengan kata cadangan Const diikuti
oleh kumpulan identifier yang diberi suatu nilai konstanta.
Data konstanta nilainya sudah ditentukan dan pasti, tidak
dapat dirubah didalam program.
Contoh
Program konstanta;
uses wincrt;
const
phi =3.14;
var
r,L : real;
begin
r:=2; {jari-jari lingkaran}
L:=phi*sqr(r);
write(L); end.
11
c. Deklarasi Tipe
Berbagai tipe disediakan oleh Pascal
Program konstanta;
uses wincrt;
type
Pecahan = real ;
Bulat = integer ;
Huruf = string [25]
begin
….
….
….
end.
Contoh.
Program type1;
uses wincrt;
type
pecahan = real;
bulat = integer;
kata = string[25];
var
nama : kata;
nilai : pecahan;
tugas, kuis, UTS, UAS : pecahan;
begin
write('nama mahasiswa :
');readln(nama);
write('nilai tugas
=');readln(tugas);
write('nilai kuis
=');readln(kuis);
write('nilai UTS =');readln(UTS);
write('nilai UAS =');readln(UAS);
12
nilai:= 0.15*tugas + 0.15*kuis +
0.35*UTS + 0.35*UAS;
writeln('nama = ',nama);
write('nilai = ',nilai:20:3);
end.
d. Deklarasi Label
Jika program menggunakan statement Goto untuk meloncat ke
suatu statement yang tertentu, maka dibutuhkan suatu label
pada statement yang dituju dan label tersebut harus di
deklarasikan terlebih dahulu pada bagian deklarasi.
Menggunakan kata cadangan Label diikuti oleh kumpulan
identifier label dengan dipisahkan oleh koma dan diakhiri
dengan titik koma.
Contoh.
Program label1;
uses wincrt;
label
100, selesai ;
begin
writeln(‘Bahasa’);
Goto 100;
writeln(‘Cobol’);
100:
writeln(‘Pascal’);
Goto selesai;
writeln(‘Fortran’);
selesai:
end.
13
Contoh.
Program label2;
uses wincrt;
label
100, 200, selesai ;
begin
writeln('Jurusan Matematika');
Goto 100;
writeln('jurusan Teknik
Informatika');
100:
writeln('Jurusan Teknik Elektro');
Goto 200;
writeln('Jurusan Teknik Industri');
200:
writeln('Jurusan Sistem Informasi');
goto selesai;
writeln('fakultas sains dan
teknologi');
selesai:
end.
Keluaran:
Jurusan Matematika
Jurusan Teknik Elektro
Jurusan Sistem Informasi
3. Unit
Suatu unit adalah kumpulan dari konstanta, tipe-tipe data,
variable, prosedur dan fungsi-fungsi. Tiap-tiap unit tampak
seperti suatu program Pascal yang terpisah. Unit standar sudah
merupakan kode mesin (sudah dikompilasi), bukan kode
14
sumber Pascal lagi dan sudah diletakkan di memori pada
waktu menggunakan pascal. Untuk menggunakan suatu unit,
harus diletakkan suatu anak kalimat Uses diawal blok program,
diikuti oleh daftar nama unit yang digunakan.
a. Unit wincrt
Digunakan untuk memanipulasi layer teks ( windowing,
peletakkan cursor dilayar, color untuk teks, kode extanded
keyboard dan lainnya).
Contoh.
Program UnitWinCrt;
uses wincrt;
begin
clrscr;
writeln(‘Hallo’);
writeln(‘-------‘);
end.
15
b. Unit printer
Contoh.
Program UsesPrinter;
Uses printer ;
Begin
Writeln(Lst,’Hallo’);
Writeln(Lst,‘-------‘);
End
c. Unit Grafik
menyediakan suatu kumpulan rutin grafik yang canggih,
sehingga dapat memanfaatkannya untuk keperluan-keperluan
pembuatan grafik.
Uses graph ;
Var
DriveGrafik, ModeGrafik : integer ;
I, x, y : integer ;
Begin
DriveGrafik : = detect ;
…….
…….
End .
4. 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.
16
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
inherted
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 implementasi
object
shr with
17
sintak : read(x);
readln(x);
x : variabel.
read : pada statemen ini posisi kursor tidak
pindah ke baris berikutnya.
readln : pada statemen ini posisi kursor akan
pindah ke baris
selanjutnya setelah di input.
Contoh.
program write1;
uses wincrt;
begin
write(‘1');
write(‘2');
write(‘3');
write(‘4’);
end.
18
Keluaran:
1234
Contoh.
program writeln1;
uses wincrt;
begin
writeln(‘1');
writeln(‘2');
writeln(‘3');
writeln(‘4’);
end.
Keluaran:
1
2
3
4
3. Readkey
Untuk pembacaan sebuah karakter dari keyboard. Tipe data
yang dihasilkan adalah char.
sintak : readkey;
a. Chr
Perintah yang digunakan untuk mengubah nilai dari byte ke
bentuk karakter yang sesuai dengan kode ASCII.
sintak : Chr (x);
x : argumen bertipe byte
19
Contoh
program Convert;
uses wincrt; var
b: Byte;
begin
b := 61;
c := Chr(b);
writeln(c);
end.
Keluaran:
a
b. Ord
Perintah yang digunakan untuk mengubah nilai dari bentuk
karakter ke bentuk longit.
sintak : Ord(x);
x : argumen bertipe char
Contoh.
program Convert;
uses wincrt; var
b: char;
begin
b := B;
c := Ord(b);
writeln(c);
end.
Keluaran: 42
c. Round
Perintah yang digunakan untuk membulatkan data tipe real ke
data tipe longint.
20
Pembulatan dilakukan untuk: nilai pecahan < 0.5 dibulatkan ke
bawah, sebaliknya dibulatkan ke atas.
sintak : Round(x);
x : argumen bertipe real
Contoh.
program Convert;
uses wincrt; var
a, b, x, y: real;
begin
a := 3.14; b:= 6.5;
x := Round(a); y := Round(b);
writeln(x:6:2);
writeln(y:6:2);
end.
Keluaran:
##3.00
##6.00
d. Trunc
Perintah yang digunakan untuk membulatkan kebawah data
tipe real ke data tipe longint.
sintak : trunc(x);
x : argumen bertipe real
Contoh.
program Convert;
uses wincrt; var
a, b, x, y: real;
begin
a := 0.1234; b:= 6.667;
21
x := Round(a); y := Round(b);
writeln(x:6:2);
writeln(y:6:2);
end.
Keluaran:
##0.00
##6.00
c. InsLine
Perintah ini digunakan untuk menyisipkan sebuah baris pada
posisi kursor dan menggeser kebawah tampilan-tampilan baris
dibawahnya.
sintak : InsLine;
d. Delay
Perintah ini digunakan untuk menghentikan sejenak proses
program.
sintak : Delay (MS: Word);
e. gotoXY
Perintah ini digunakan untuk menempatkan posisi kursor pada
layar.
sintak : GotoXY(X, Y: byte);
22
X = sumbu X (posisi horisontal)
Y = sumbu Y (posisi vertikal)
Contoh.
Program Layar;
uses Crt;
var x : Char;
begin
clrScr;
gotoXY(35,10);writeln (‘Jurusan
Matematika');
write (tunggu sebentar...!!');
delay (5000);
insLine;
gotoXY (35,11);writeln ('Fakultas Sains
dan Teknologi');
gotoXY(01,13);writeln ('Tekan Enter !');
delay(1000);
gotoXY(15,12);
delLine;
read(x);
end.
Hasilnya adalah :
Jurusan Matematika
Fakultas Sains dan Teknologi
tunggu sebentar...!!
Tekan Enter !
9. Statement Tambahan
a. TextColor
23
Perintah ini digunakan untuk mengatur warna dari karakter-
karakter di layar.
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
Contoh.
program Colors;
uses wincrt;
begin
TextColor(Red);
Writeln('Hello');
TextColor(White);
Writeln('world');
end.
b. TextBackGround
Perintah ini digunakan untuk mengatur warna latar belakang
dari karakter-karakter di layar.
24
sintak :
TextBackGround(Color : Byte);
Contoh
program Colors;
uses wincrt;
begin
TextBackground(Red);
Writeln('Hello');
TextColor(White);
ClrScr;
end.
c. Window
sintak :
Window(x1,x2,y1,y2 : Byte);
Contoh.
program Coordinates;
uses wincrt;
begin
Window(1,1,10,5);
TextBackground(Blue);
ClrScr;
25
end.
d. TextMode
Perintah ini digunakan untuk mengatur lebar layar, 80 kolom
atau 40 kolom.
sintak :
TextMode(Mode: Byte);
Default : C80
e. Sound
sintak :
Sound (Hz : word);
NoSound(Hz : word);
Contoh.
Program Layar2;
Uses WinCrt;
Begin
ClrScr;
Window (5,5,20,75);
TextBackGround(Red);{atau angka (4)}
TextColor(Yellow);
Sound (220);
GotoXY(10,7);
Writeln('I Love Dinda');
GotoXY(11,7);
26
Writeln('Bayi Sehatku');
NoSound;
End.
27
BAB III
TIPE DATA DAN EKSPRESI MATEMATIS
28
(a and c ) or a hasilnya true
b. Bilangan Bulat
Tipe data integer adalah bilangan yang tidak
mempunyai titik desimal
Nama tipe bilangan bulat disebut Integer, yang terdiri
dari: byte, shortint, word, integer, dan longint.
c. Bilangan Real
Bilangan real adalah tipe bilangan yang mengandung
desimal. Nama tipe jenis bilangan ini adalah real.
Jenis tipe real terdiri dari :real, single, doubel, dan
extended.
29
Tipe Jangkauan Ukuran
real 1.9 e-39 … 1.7 e+38 6 byte
single 1.5 e-45 … 3.4 e+38 4 byte
double 5.0 e-324 … 1.7 e+308 8 byte
extended 3.4 e-4932 … 1.1 10 byte
comp e+4932 8 byte
-263 +1 … 263 - 1
d. Karakter (char)
Yang termasuk dalam jenis tipe karakter adalah : semua
huruf a … z, semua tanda baca, semua angka 0 … 9, dan
karakter-karakter khusus ‘&’, ‘~’, … , ‘@’. Nama jenis tipe ini
disebut char.
Untukk menunjukkan bahwa suatu adalah karakter,
maka harus diberi tanda ‘… ‘.
Contoh.
‘a’ , ‘c’ , ‘$’, …
30
‘3’ adalah karakter, tetapi 3 adalah integer
e. String
String adalah untaian/susunan karakter yang jumlahnya
tertentu. Nama tipe jenis ini adalah string.
Contoh.
‘aku’ , ‘cuci’ , ‘bandung’, ‘3’, ‘saya33’
Contoh.
‘a’ +’ b’ hasilnya ‘ab’
‘matematika’ + ‘terapan’ hasilnya ‘matematikaterapan’
‘aku’ + ‘dan’ + ‘kau’ hasilnya ‘akudankau
31
Operasi perbandingan menghasilkan nilai bertipe Boolean
(true atau false).
Contoh.
‘a’ = ‘a’ (hasilnya true)
‘C’ = ‘c’ (hasilnya true)
‘D’ = ‘Z’ (hasilnya false)
2. Tipe Bentukan
Contoh.
Misalnya akan didefiniskan tipe harikerja, yang tidak terdapat
pada tipe dasar, maka tipe data harikerja pada jangkauan senin,
selasa, …, sabtu harus didefinisikan kembali.
32
type harikerja = senin .. sabtu;
Contoh.
Misalkan terdapat 5 toko: jaya, baru, sukses, rapi, ramai yang
akan dipakai untuk komputasi.
type toko =(jaya,baru,sukses,rapi,ramai);
Contoh.
Misalnya akan didefiniskan tipe harikerja, yang tidak terdapat
pada tipe dasar, maka tipe data harikerja pada jangkauan senin,
selasa, …, sabtu harus didefinisikan kembali.
type harikerja =
(senin,selasa,rabu,kamis,jumat,sabtu);
Contoh:
var sekolah =(TK, SD, SMP, SMA, UNIVERSITAS);
Contoh:
var bulan = (januari, februari, maret, april,
mei, juni, juli, agustus, september, oktober,
november, desember);
33
Maka deklarasi variabel di atas dapat disederhanakan menjadi
var a: array[1..8] of longint
2. Rekaman (record)
Tipe rekaman (record) memungkinkan kita dapat
mendeklarasikan sebuah variabel yang bertipe tidak sama.
Pemberian nilai pada variabel bertipe rekaman dilakukan
dengan menyebutkan nama variabel rekaman diikuti tanda
titik (.) dan variabel dalam rekaman.
Contoh.
Misalnya akan dideklarasikan tipe tanggal menjadi tiga
komponen : hari-bulan-tahun:
type <tipe_tanggal> = record
Hari : 1..31;
Bulan:
(januari,februari,maret,april,mei,
juni,juli,agustus,september,
oktober,november,desember);
Tahun: 1900..2000
34
end;
tanggal_lahir.hari:=4;
tanggal_lahir.bulan := januari;
tanggal_lahir.tahun := 1981;
Contoh.
Misalnya akan dideklarasikan karyawan menjadi nama-alamat-
gaji:
type
tipe_karyawan = record
nama : string[20];
alamat : string[40];
gaji : longint;
end;
Jika di deklarasikan variabel karyawan bertipe tipe_karyawan
var
karyawan : tipe_karyawan
maka dapat dituliskan sebagai
karyawan.nama := ‘wartono’;
karyawan.alamat := ‘pekanbaru’;
karyawan.gaji :=100000;
3.2. Ekspresi
1. Ekspresi Aritmetik
Operator aritmetika digunakan untuk memproses
bentuk-bentuk operasi +, -, /, x, div,, mod pada tipe data
integer atau real.
operator aritematika ada 2:
35
• operator aritmetik tunggal : menggunakan
hanya satu operan
• operator aritmetik biner : menggunakan satu
operan atau lebih
Operator aritmetik tunggal
x := -y
x := y
Contoh
d := (a/2.5) + c*b
x := i + (j + k) - 10*(d + k)
z := 100.0/(a + c) – 2.5
2. Ekspresi Relasional
Ekspresi relational adalah ekspresi yang melibatkan <,
£, ³, >, =, ≠, not, and, or dan xor. Hasil evaluasi ekspresi
adalah nilai bertipe boolean (true atau false), sehingga ekspresi
relational disebut juga ekpresi boolean.
Contoh.
36
Misalkan a bernilai false, b bernilai true, x bernilai 8
dan y bernilai 12.
not a; {hasil : false}
a or b; {hasil: true}
a and true; {hasil: true}
x < 5 and y > 4; {hasil : false}
a or ( x = y); {hasil: true}
3. Ekspresi string
ekspresi string adalah eskpresi dengan operator “+”
(operator penyambungan).
Contoh
‘jalan subrantas’ + ‘pekanbaru’
3.3. Runtunan
Contoh.
Misalnya akan dihitung luas segitiga L dengan rumusan Luas
sama dengan setengah alas kali tinggi, atau
L = ½ at
Oleh karena keluaran Luas L bergantung kepada masukan alas
a dan tinggi, maka pseudocodenya adalah:
1. mulai
2. masukan a, t
3. L ¬ 1/2*a*t
4. tulis L
5. selesai
37
Kode program untuk runtunan di atas diberikan sebagai
berikut.
Program segitiga;
uses wincrt;
var
luas,a,t: real;
begin
write(‘masukan alas = ‘);readln(a);
write(‘masukan tinggi = ‘);readln(t);
writeln;
luas :=1/2*a*t;
write(‘luas adalah’,luas:10:3);
end.
Program penjumlahan;
uses wincrt;
var
a,b,c: real;
begin
write(‘bilangan a = ‘);readln(a);
write(‘bilangan b = ‘);readln(b);
c :=a + b;
write(‘jumlah dua bilangan’,c:10:3);
end.
38
Latihan
39
BAB IV
LOGIKA PERCABANGAN
40
Contoh
program Decisions;
var
i: Integer;
begin
Writeln(‘masukan sebuah bilangan');
Readln(i);
if i = 5 then
Writeln(‘bilangan tersebut 5');
end.
Contoh.
Buatlah program untuk menyeleksi bilangan genap.
Bilangan genap adalah bilangan yang habis dibagi dua, artinya
Sisa pembagian dengan dua adalah 0, atau (i mod 2 = 0)
program bilangangenap;
uses wincrt;
var
i: integer;
begin
writeln(‘masukan sebuah bilangan
asli');
readln(i);
41
if i mod 2 = 0 then
writeln(‘bilangan genap')
else
writeln(‘bilangan lainnya’);
end.
Contoh.
Buatlah program untuk menyeleksi bilangan ganjil.
Bilangan ganjil adalah bilangan yang jika dibagi dua bersisa 1,
artinya (i mod 2 = 1)
program bilangangenap;
uses wincrt;
var
i: integer;
begin
writeln(‘masukan sebuah bilangan
asli');
readln(i);
if i mod 2 = 1 then
writeln(‘bilangan ganjil')
else
writeln(‘bukan bilangan ganjil’);
end.
42
else
<pernyataan4>
Contoh.
Buatlah program untuk menyeleksi bilangan negatif, nol atau
positif
program seleksibilangan;
uses wincrt;
var
x: real;
begin
writeln(‘masukan sebuah bilangan
real');readln(x);
if x<0 then
writeln(‘bilangan negatif')
else if x=0 then
writeln(‘bilangan nol’)
else
writeln(‘bilangan positif’);
end.
Contoh.
Buatlah program untuk menyeleksi jenis akar pada persamaan
kuadrat ax2 + bx + c = 0
program seleksiakar;
uses wincrt;
var
a,b,c,D: real;
begin
43
writeln(‘masukan
a,b,c');readln(a,b,c);
D :=sqr(b)-4*a*c;
if D < 0 then
writeln(‘akar imajiner')
else if D = 0 then
writeln(‘akar real dan sama’)
else
writeln(‘akar real dan berbeda’);
end.
4.4. Case … of
Bentuk Case..of merupakan alternatif dari bentuk percabangan
bersarang if..then..else if.., sehingga bentuk menjadi
lebih sederhana yang diberikan oleh
if <kondisi1> then
<pernyataan1>
else if <kondisi2> then
<pernyataan2>
else if <kondisi3> then
<pernyataan3>
else
<pernyataan4>
menjadi
case <ungkapan> of
<label1> : <pernyataan1>
<label2> : <pernyataan2>
<label3> : <pernyataan3>
else
<pernyataan4>
end;
44
ungkapan : dapat berupa sembarang ungkapan yang
memberikan hasil integer, char, boolean atau tipe
terbilang (kecuali real).
Label : konstanta yang mempunyai tipe yang sama
dengan ungkapan
pernyataan : pernyataan yang mengikuti berupa rangkaian
instruksi yang harus dikerjakan jika nilai
konstanta dalam label sama dengan nilai variabel
Contoh.
Program Bilangan;
uses wincrt;
var
x : integer;
begin
if (x=0) then
writeln(‘x bernilai 0’)
else if (x=1) then
writeln(‘x bernilai 1’)
else if (x=2) then
writeln(‘x bernilai 2’)
else if (x=3) then
writeln(‘x bernilai 3’)
else
writeln(‘x tidak bernilai 0, 1, 2,
3’);
end.
Program Bilangan;
uses wincrt;
var
45
x : integer;
begin
case x of
0: writeln(‘x bernilai 0’);
1: writeln(‘x bernilai 1’);
2: writeln(‘x bernilai 2’);
3: writeln(‘x bernilai 3’);
else
writeln(‘x tidak bernilai 0,1, 2,
3’);
end;
end.
Contoh.
Program caseof2;
uses wincrt;
var
p,l,a,t,r :real;
luas :real;
pilihan :integer;
begin
writeln('Menghitung Luas Bidang');
writeln('1. Luas Persegipanjang');
writeln('2. Luas segitiga');
write('masukan pilihan (1)-(2) :
');readln(pilihan);
clrscr;
case pilihan of
1:
begin
writeln('menghitung luas
persegipanjang');
writeln;
46
write('panjang (p)) =
');readln(p);
write('lebar (l) =
');readln(l);
Luas := p*l;
writeln('Luas persegipanjang =
',Luas:8:5);
end;
2:
begin
writeln('menghitung luas
segitiga');
writeln;
write('alas (a) =
');readln(a);
write('tinggi (t) =
');readln(t);
Luas := 1/2*a*t;
writeln('Luas segitiga =
',Luas:8:5);
end;
else
writeln('tidak melakukan
pilihan');
end;
end.
Latihan
47
Nilai := 15% T + 15% Q + 35% UTS +
35% UAS
Gunakan: Case … of
48
10 th <= masakerja < 20 th à bonus =
15%GajiPokok;
masakerja .= 20 th è bonus =
20%*GajiPokok;
Tunjangan Anak = 10%banyakanak*GajiPokok
49
BAB V
PENGULANGAN
5.1. for … do
a. For … to … do
Pengulangan menggunakan perintah for… to… do
merupakan pengulangan bernilai positif. Kenaikan
bilangan pada pengulangan tersebut adalah satu.
Sintak:
for pengubah:= <ungkapan1> to <ungkapan2> do
pengubah : suatu pengubah yang disebut pengubah
kendali, dapat
berupa pengenal dari tipe integer, char,
boolean atau
tipe terbilang.
ungkapan1 : nilai awal pengubah
Contoh.
program pengulangan1;
uses wincrt;
var
i: integer;
begin
for i:=1 to 5 do
50
writeln(‘matematika’);
end.
Contoh
program pengulangan1;
uses wincrt;
var
i: integer;
begin
for i:=1 to 5 do
writeln(i);
end.
Contoh.
program penjumlahan;
{------------------------------}
jumlah dari 1 + 2 + 3 + … + n
{------------------------------}
uses wincrt;
var
i,n : integer;
sum : real;
begin
write(‘banyaknya bilangan : ’);
readln(n);
writeln;
sum :=0;
for i:=1 to n do
sum := sum + i;
write(‘jumlah bilangan =‘,sum:10:3)
end.
51
b. For … downto … do
Perintah for … downto… do merupakan perintah pengulangan
yang bernilai negative dengan default satu.
Sintak:
for pengubah:= <ungkapan1> downto <ungkapan2> do
pengubah : suatu pengubah yang disebut pengubah kendali,
dapat
berupa pengenal dari tipe integer, char, boolean
atau
tipe terbilang.
ungkapan1 : nilai awal pengubah
ungkapan2 : nilai akhir pengubah
Contoh
program pengulangan1;
uses wincrt;
var
i: integer;
begin
for i:=6 downto 2 do
writeln(i);
end.
Contoh
Program cetakhuruf;
Uses wincrt;
var
huruf:char;
begin
for huruf:=‘f’ downto ‘a’ do
writeln(huruf);
end.
52
5.2. While … do
While merupakan salah salah bentuk looping, yang mana
pengulangan akan terus dilakukan selama <kondisi> bernilai
benar.
While <kondisi> do
begin
<pernyataan>
<pencacah>
end;
Contoh.
Program menampilkan kata “matematika” sebanyak 5 kali;
program whiledo1;
uses wincrt;
var
i, n: integer;
kata : string;
begin
write(‘masukan sebuah kata :
');readln(kata);
writeln;
i:=0;
while i < 5 do
begin
i:=i+1;
writeln(kata);
53
end;
end.
Contoh.
program repeat1;
uses wincrt;
var
i, n: integer;
Begin
i:=0;
repeat
begin
writeln(i);
i:=i+1;
end;
until i > 5;
end.
Contoh
Program repeat1;
54
Uses wincrt;
var
i,n: integer;
sum :real;
Begin
write('enter a number (n) :
');readln(n);
writeln;
i:=0;
sum:=0;
repeat
i:=i+1;
sum:=sum+i;
until i >= 5;
writeln(i,sum:8:0);
end.
Latihan
55
*
**
***
****
*****
******
*******
56
BAB VI
LARIK
57
berupa pengenal dari tipe integer, char, boolean
atau
tipe terbilang.
Sub-range : nilai dengan rentang: 1..10, 1..100, ‘a’.. ‘c’, dan
sebagainya.
Tipe-data : tipe data, misalnya: integer, real, word, dsb
Contoh.
program larik1;
uses wincrt;
var
x: array[1..10] of integer;
i:integer;
begin
for i:=1 to 5 do
begin
x[i]:=i;
writeln(x[i]:8:2);
end;
end.
####1.00
####2.00
####3.00
####4.00
####5.00
Contoh
program larik2;
uses wincrt;
type
larik = array['a'..'z'] of char;
58
var
x: larik;
i: char;
Begin
for i:='a' to ‘e' do
begin
x[i]:=i;
writeln(x[i]:8);
end;
end.
Contoh
program larik2D;
uses wincrt;
var
x: array[1..10,1..10] of integer;
i,j:integer;
begin
x[1,1]:=1;x[1,2]:=2;x[2,1]:=3;x[2,2]:
=4;
59
for i:=1 to 2 do
begin
begin
for j:=1 to 2 do
write(x[i,j]:8);
end;
writeln;
end;
end.
Latihan
−2 4 6
[ 0 −3 1
1 5 −4 ]
3. Buatlah program untuk menghitung rataaan dan deviasi
standar dari suatu kumpulan data yang diinput dari luar
x1, x2, x3, …, xn dengan rumusan rataan
x + x +⋯+ x n
x̄= 1 2
n
60
simpangan baku
2 2 2 2
( x 1 − x̄ ) +( x 2 − x̄ ) +( x 3− x̄ ) +. ..+( x n − x̄ )
s=
n−1
A= 1 3 B= 0 1
[
−2 5 ] dan
[ ]
−1 2
Buatlah program untuk menghitung operasi aritmetik
berikut
a. C=A+B
b. C= A–B
c. C = AB
61
BAB VII
FUNGSI
1. Absolut (abs)
Memberikan nilai mutlak dari suatu argumen.
sintak : abs(x)
x : argumen
Contoh
program abs1;
uses wincrt;
Var
x : real;
begin
x:=abs(-203);
writeln(x);
write(x:10:2);
end.
#2.30000000000000E+0002
####230.00
2. Eksponensial (exp)
Menghitung nilai ekponen (e) dari suatu argumen.
sintak : exp(x)
x : argumen
62
Contoh
program eksponen;
Uses wincrt;
x : real;
begin
x:=exp(2);
write(x:10:6);
end.
##7.389056
3. Ln
Menghitung nilai logaritma natural dari suatu argumen.
sintak : ln(x)
x : argumen
Contoh.
program logaritma_e;
Uses wincrt;
x : real;
begin
x:=ln(2);
write(x:10:6);
end.
##0.693147
63
sintak : sqr(x)
x : argumen
Contoh.
program kuadrat;
Uses wincrt;
x : real;
begin
x:=sqr(3);
write(x:10:6);
end.
##9.000000
Contoh
program AkarKuadrat;
Uses wincrt;
x : real;
begin
x:=sqrt(16);
write(x:10:6);
end.
##4.000000
6. Pembulatan (int)
64
Menghitung nilai integer dari suatu argumen dengan
membuang digit desimalnya.
sintak : int(x)
x : argumen
Contoh
program Integer1;
Uses wincrt;
x : real;
begin
x:=int(7.1234);
writeln(x:10:6);
write(x:10:2);
end.
##7.000000
######7.00
7. Pecahan (frac)
Perintah yang digunakan untuk memberikan nilai setelah
desimal pada suatu argumen
sintak : frac(x)
x : argumen
Contoh
program Pecahan;
Uses wincrt;
x : real;
begin
x:=frac(7.1234);
write(x:10:6);
write(x:10:2);
65
write(x:10:4);
end.
##0.123400
######0.12
####0.1234
Contoh
program Trigono;
uses wincrt;
var
x : real;
begin
x:=sin(7.1234);
write(x:10:6);
write(x:10:2);
write(x:10:4);
end.
##0.123400
######0.12
####0.1234
Contoh
program InversTrigono;
uses wincrt;
var
x : real;
begin
x:=frac(7.1234);
write(x:10:6);
write(x:10:2);
write(x:10:4);
end.
67
<statement>
<statement>
end;
Contoh
program gaya;
uses wincrt;
var
m, a : real;
{-----program utama-------}
begin
write('percepatan (a) = ');readln(a);
write('massa (m) = ');readln(m);
clrscr;
write('gaya = ',F(m,a):10:5);
end.
Contoh
68
Buatlah program untuk menbentuk fungsi f(x) = axn
y = axn à ln(y) = ln(axn)
ln(y) = ln(a) + n*ln(x)
y = exp(ln(a) + n*ln(x))
y = exp(ln(a)*exp(n*ln(x))
y = a*exp(n*ln(x))
Contoh
Buatlah program dengan menggunakan modul function untuk
menghitung deret 1 + 2 + 3 + 4 + 5 + … + n
program deret;
uses wincrt;
var
n : integer;
function deret(batas:integer):integer;
var
jumlah, i : integer;
begin
jumlah:=0;
for i:=1 to batas do
jumlah := jumlah + i;
deret:=jumlah;
end;
{-----program utama-------}
69
begin
write('masukan banyaknya bilangan =
');readln(n);
write('jumlah ',n,' bilangan adalah
=',deret(n));
end.
Latihan
BAB VIII
PROSEDUR
8.1 StrukturProsedur
70
Prosedur adalah suatu program terpisah dalam blok sendiri
yang berfungsi sebagai subprogram yang diawali dengan kata
Procedure.
Procedure <nama_prosedur>(parameter
:tipe_data);
{deklarasi variabel}
begin
…
…
end.
Program <nama_program>
{deklarasi variabel}
Procedure <nama_procedure>
begin
…
… 71
…
end.
begin
….
….
end
Contoh
Program Prosedur1;
Procedure garis;
begin
Writeln(‘----------‘);
end;
begin
garis;
Writeln(‘Matematika’):
garis;
end.
72
Parameter loka adalah parameter yang hanya
digunakan pada prosedur tertentu saja, tidak dapat digunakan
oleh modul procedure lainnya.
Contoh.
Program ParameterLokal;
Program Prosedur1;
Procedure kesatu;
var
a, b : <tipe_data>
begin
…
…
end;
Procedure kedua;
var
c, d : <tipe_data>
begin
…
…
end;
begin
…
…
end.
73
Contoh
Procedure hitung(a,b:real);
var
c : real;
begin
c := a + b
end;
begin
hitung(2,3);
writeln(‘hasil =’,hitung);
end.
Program Prosedur1;
b. Menggunakan Parameter
var Global
Parameter global adalah x, yparameter yang dapat
: <tipe_data>
digunakan oleh semua prosedur yang biasanya
didekralasikan pada program utama.
Procedure kesatu;
var
a, b : <tipe_data>
begin
…
…
end;
Procedure kedua;
var
c, d : <tipe_data>
begin
…
…
end;
begin
…
… 74
end.
Pada Gambar di atas, variabel x dan y bersifat global, artinya
dapat digunakan oleh semua prosedur.
Contoh.
program Procedure1;
uses wincrt;
var
x,y:real;
nilai :real;
procedure hitung(a,b:real);
begin
nilai := a + b;
end;
begin
x:=2; y:=2;
hitung(x,y);
write(nilai:6:3);
end.
75
Latihan
DAFTAR PUSTAKA
76
Kadir, A., 2008, Dasar-Dasar Pemrograman Pascal, 4th ed.,
Andi Offset, Yogyakarta.
77