0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan

Modul Algoritma Dan Pemrograman 4 PDF Free

Dokumen tersebut membahas pengantar bahasa Pascal, mencakup penjelasan tentang compiler Turbo Pascal dan C, struktur program Pascal yang terdiri dari bagian deklarasi dan pernyataan, serta penjelasan mengenai variabel, konstanta, tipe data, label, dan unit dalam bahasa Pascal.

Diunggah oleh

Anggi Alfioni
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai RTF, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan

Modul Algoritma Dan Pemrograman 4 PDF Free

Dokumen tersebut membahas pengantar bahasa Pascal, mencakup penjelasan tentang compiler Turbo Pascal dan C, struktur program Pascal yang terdiri dari bagian deklarasi dan pernyataan, serta penjelasan mengenai variabel, konstanta, tipe data, label, dan unit dalam bahasa Pascal.

Diunggah oleh

Anggi Alfioni
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai RTF, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 77

BAB I

PENGANTAR BAHASA PASCAL

1. Sekilas Bahasa Pascal

Turbo Pascal dan C merupakan program compiler. Compiler


sendiri berarti program yang menerjemahkan tulisan berupa
kode program menjadi bahasa mesin yang dapat dimengerti
oleh komputer. Proses yang dilakukan disebut compile atau
compiling. Suatu program dapat di-compile dengan
menggunakan kombinasi tombol Alt + F9. Sedangkan untuk
menjalankan program, tombol yang dapat digunakan adalah
Ctrl + F9. Bila selama proses compile terdapat error atau
kesalahan dalam penulisan program, maka Turbo Pascal atau C
akan memberitahukan letak kesalahan tersebut sehingga
pengguna dapat memperbaikinya di halaman editor.

Turbo Pascal merupakan bahasa yang case insensitive yang


berarti penulisan dalam huruf kapital maupun huruf kecil tidak
dipermasalahkan. Akan tetapi pada C yang case sensitive,
maka penulisan huruf kapital atau kecil harus benar-benar
diperhatikan.

Untuk pembahasan berikutnya, kita akan menggunakan


program Turbo Pascal dengan bahasa pemrograman Pascal
sebagai pengantar contoh. Perlu diingat bahwa bila anda telah
menguasai satu bahasa pemrograman, maka anda akan dengan
cukup mudah berpindah ke bahasa pemrograman lainnya
selama anda memiliki dasar algoritma dan logika yang baik.
1
Oleh sebab itu, pada pembahasan yang selanjutnya, yang akan
ditekankan adalah algoritma dan logika, bukan sintaks dan
function / procedure yang terdapat dalam Turbo Pascal.
Function atau procedure yang telah disediakan oleh Turbo
Pascal dapat anda pelajari sendiri penggunaannya melalui Help
yang terdapat di Turbo Pascal.

Pada Turbo Pascal terdapat dua jendela utama, yaitu


a. jendela untuk membuat program

b. jendela untuk keluaran

Untuk membuat Program pada Turbo Pascal lakukan beberapa


kegiatan sebagai berikut.

2
1. Membuka Jendela Utama
Untuk menulis program pada jendela utama Turbo Pascal,
pertama kali adalah buka jendela Turbo Pascal melalui
program

Atau double klik ikon TPW 1.5 pada dekstop

Setelah program dibuka, akan muncul jendela utama TPW 1.5

3
Jendela utama digunakan untuk membuat kode program yang
terdiri dari menu File, Edit, Search, Run, Compile, Option,
Window dan Help.

2. Menyimpan Lembar Kerja


Untuk menyimpan lembar kerja yang telah dibuat, ikuti
langkah-langkah berikut
a. Klik Menu File
b. Save

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

Membuat Program Sederhana

Program pascal;
uses wincrt;
begin
Writeln ( ‘saya pascal’ );
Writeln ( ‘-----------‘ );
end.

Ketikan kode program di atas pada jendela utama TPW 1.5


sebagai berikut.

6
Compile program untuk menelusuri kesalahan-kesalahan

Berdasarkan hasil compile, program tidak ada kesalahan,


selanjutnya run program, menghasilkan output sebagai berikut.

7
Latihan

1. Buatlah program dengan output sebagai berikut.

Jurusan Matematika
Fakultas Sains dan Teknologi
UIN Sultan Syarif Kasim Riau
Disimpan dengan nama latihan1.pas.

2. Buatlah program dengan output sebagai berikut.

Saya Suka Pemrograman


Pemrograman Turbo Pascal

------------------------
Disimpan dengan nama latihan2.pas

3. Buatlah program sederhana untuk menjumlahan dua buah


bilangan dengan input bilangan dari program

8
BAB II
STRUKTUR PASCAL, UNIT DAN STATEMENT

1. Struktur Program Pascal


Struktur dari suatu program pascal terdiri dari sebuah judul
program dan suatu blok program atau badan program. Blok
program dibagi lagi menjadi dua bagian, yaitu : bagian
deklarasi dan bagian pernyataan. Secara ringkas, struktur suatu
program pascal dapat terdiri dari :

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).

Prosedur standar yang menggunakan unit crt adalah :


AssignCrt HighVideo Sound
ClrEol
InsLine TextBackground ClrScr
LowVideo
TextColor Delay NormVideo
TextMode
DelLine NoSound Window
GotoXY

Fungsi standar yang menggunakan unit Crt adalah :


KeyPressed ReadKey WhereX
WhereY

Contoh.

Program UnitWinCrt;
uses wincrt;
begin
clrscr;
writeln(‘Hallo’);
writeln(‘-------‘);
end.

15
b. Unit printer

Merupakan unit yang sangat kecil dirancang untuk penggunaan


printer didalam program.

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

5. Statement untuk input/output

a. Read dan Readln


Perintah ini digunakan untuk memasukkan [input] data
lewat keyboard ke dalam suatu variabel.

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.

b. Write dan Writeln


Digunakan untuk menampilkan isi dari suatu nilai
variable di layar.
sintak : write(x);
writeln(x);
x : variabel.
write : statement ini digunakan untuk mencetak
variabel ke dalam monitor, dan kursor
tidak pindah ke baris selanjutnya
writeln : statement ini digunakan untuk mencetak
variable ke dalam monitor, dan kursor
pindah ke baris selanjutnya

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;

7. Statement mengubah Nilai Variabel

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

8. Statement untuk pengaturan letak layar


a. Clrscr
Perintah ini digunakan untuk membersihkan layar.
sintak : clrscr;
b. DelLine
Perintah ini digunakan untuk menghapus sebuah baris pada
posisi kursor dan menaikkan baris-baris dibawahnya.
sintak : delLine;

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);

variable MS = ukuran waktu dalam milisecond.

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.

sintak : 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

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

Perintah ini digunakan untuk membuat suatu jendela (window)


yang terletak pada layar.

sintak :
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.

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

Perintah ini digunakan untuk mengaktifkan suara (beep) pada


internal speaker.

sintak :
Sound (Hz : word);
NoSound(Hz : word);

Untuk mengnonaktifkannya, gunakan statemen NoSound.

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

3.1. Tipe Data Skalar


1. Tipe Dasar
Tipe yang sudah ada sejak dulu dan sering digunakan
dalam kehidupan sehari-hari (predefined data type)
Tipe dasar terdiri dari:
a. bilangan logika (boolean)
b. bilangan bulat (integer)
c. bilangan real
d. string
e. karakter

a. Bilangan logika (Boolean)


Tipe bilangan logik disebut juga tipe Boolean, sehingga
perasinya disebut operasi Boolean dan hanya mengenal dua
tipe : true dan false.
Contoh.
Misalkan a, b, dan c adalah peubah bertipe Boolean. Jika a
bernilai benar, b bernilai benar dan c bernilai salah
(a and b ) or c hasilnya true

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.

Tipe Jangkauan Ukuran


Shortint 128 … 127 8 byte
Integer -32768 … 32767 16 byte
Longint -2147483648 … 32 byte
Byte 2147483647 8 byte
word 0 … 255 16 byte
0 … 65535

Operasi yang berlaku pada tipe jenis integer adalah :


1). Operasi aritmetika (+, - , * )
Contoh.
5 * 10 hasilnya 50
2). Operasi perbandingan ( <, £, >, ³, ¹ )
Contoh.
4 £ 10 hasilnya false
10 ¹ 3 hasilnya true
20 > 4 hasilnya true

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

Operasi yang berlaku pada tipe jenis real adalah :

1). Operasi aritmetika (+, - , * , div, mod )


Contoh.
5 * 10 hasilnya 50
10 mod 3 hasilnya 1 (mod adalah sisa pembagian)
20 div 4 hasilnya 5 (div adalah hasil bagi)

2). Operasi perbandingan ( <, £, >, ³, ¹ )


Contoh.
4 £ 10 hasilnya false
10 ¹ 3 hasilnya true
20 > 4 hasilnya true

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

Operasi yang berlaku pada tipe jenis hanya satu, yaitu:


1). operasi perbandingan ( <, £, >, ³, ¹ )
contoh.
4 £ 10 hasilnya false
10 ¹ 3 hasilnya true
20 > 4 hasilnya true
‘a’ = ‘a’ (hasilnya true)
‘C’ = ‘c’ (hasilnya true)
‘D’ = ‘Z’ (hasilnya false)

e. String
String adalah untaian/susunan karakter yang jumlahnya
tertentu. Nama tipe jenis ini adalah string.

Contoh.
‘aku’ , ‘cuci’ , ‘bandung’, ‘3’, ‘saya33’

Deklarasi variabel nama mahasiwa dengan maksimal 20 huruf


Var nama_mahasiswa : string[20];

Operasi yang berlaku pada jenis tipe ini adalah:


1). Operasi penyambungan
Simbol yang digunakan untuk menyambung tipe data
string digunakan simbol + (buka simbol tambah dalam operasi
aritmetika)

Contoh.
‘a’ +’ b’ hasilnya ‘ab’
‘matematika’ + ‘terapan’ hasilnya ‘matematikaterapan’
‘aku’ + ‘dan’ + ‘kau’ hasilnya ‘akudankau

2). Operasi perbandingan ( <, £, >, ³, ¹ )

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

Tipe bentukan adalah tipe yang didefinisikan sendiri oleh


pemogram (user-defined type data).
Tipe data bentukan terdiri dari:
1. Tipe data subjangkauan : tipe data yang didefinisikan
kembali oleh tipe-tipe dasar (integer)
2. Tipe terbilang (enumerated) : tipe data yang dibuat
dengan menyebutkan

a. Tipe Data Subjangkauan


Tipe data yang didefinisikan kembali berdasarkan tipe-tipe
data dasar, atau karena tipe tersebut tidak didefinisikan oleh
tipe dasar
Contoh.
Misalkan nilai adalah sebuah variabel nilai mahasiswa pada
range 0 … 100, maka tipe datanya harus dibuat kembali,
menjadi
type nilai = 0 .. 100;

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;

b. Tipe Data Enumerated (Terbilang)


Tipe data terbilang digunakan untuk medeklarasikan tipe data
dengan menyebutkan.

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);

B. Tipe Data Terstruktur


1. Larik (array)
Tipe larik memungkinkan kita dapat mendeklarasikan
sebuah variabel yang bertipe sama

Misalnya akan dideklarasikan 8 variabel dengan tipe longint,


var a1,a2,a3,a4,a5,a6,a7,a8 : longint

33
Maka deklarasi variabel di atas dapat disederhanakan menjadi
var a: array[1..8] of longint

Jika sebuah variabel memiliki dua dimensi, maka deklarasi


variabelnya adalah
var a: array[1..8, 1..8] of longint
Tipe data untuk nama mahasiswa dengan maksimal huruf 20,
maka deklarasivariabelnya:
var nama_mahasiswa: array[1..20] of
char;
Tipe data untuk nim mahasiswa dengan maksimal 16 karakter,
maka deklarasivariabelnya:
var nim_mahasiswa: array[1..16] of
char;

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;

Deklarasi variabelnya adalah:


var
tanggal_lahir: tipe_tanggal;

Atau dapat menuliskan secara langsung

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

Pada penulisan ekspresi aritmetik, perlu diperhatikan hirarki


operator. Urutan prioritas : div/mod, perkalian/pembagian,
penjumlahan/pengurangan

operator operasi Tipe operan Tipe hasil


+ penjumlahan bulat/real bulat/real
- pengurangan bulat/real bulat/real
* perkalian bulat/real bulat/real
/ pembagian bulat/real real/real
div Pembagian bilangan bulat bulat bulat
mod Sisa pembagian (modulus) bulat bulat

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

Runtunan berisi lebih dari satu pernyataan (pernyataan


gabungan/Compound statement) yang dikerjakan secara
berurutan.

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 menghitung dua buah bilangan a dan b yang


dirumuskan oleh:
c=a+b
Pseudocode adalah:
1. mulai
2. masukan a, b
3. c ¬ a + b
4. Tulis c
5. selesai
Kode program dari pseudocode di atas adalah sebagai berikut.

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

1. Buatlah algoritma dan program untuk menghitung luas


persegipanjang dengan lebar l dan panjang p yang
dirumuskan sebagai berikut.
L = pl
2. Buatlah program untuk menghitung luas trapesium
dengan tinggi t dan sisi-sisi sejajar masing-masing a dan
b

3. Buatlah program untuk menghitung volume dari


a. kerucut dengan tinggi t dan jari-jari alasnya r
b. tabung dengan tinggi t dan jari-jari alasnya r

4. Buatlah algoritma dan program untuk menghitung luas


permukaan dari suatu tabung dengan jari-jari alas r dan
tinggi yang dirumuskan sebagai berikut.
L = 2pr2 + 2prt

5. Buatlah program untuk menghitung diskriminan D dari


persamaan kuadrat ax2 + bx + c = 0, dengan D = b2 – 4ac

6. Buatlah program untuk menghitung luas segitiga L


dengan panjang sisi-sisinya a, b, dan c yang dirumuskan
sebagai berikut.
L= s(s−a)(s−b)( s−c)

dengan s = ½(a + b + c)

39
BAB IV
LOGIKA PERCABANGAN

4.1 Percabangan if … then …


sintak percabangan if..then.. diberikan oleh :
if <kondisi> then
<pernyataan>
Kondisi merupakan kontrol program yang berupa ungkapan
boolean. Pernyataan akan diberikan jika kondisi dipenuhi,
sebaliknya jika tidak, eksekusi program langsung selesai.

40
Contoh

program Decisions;
var
   i: Integer;
begin
   Writeln(‘masukan sebuah bilangan');
   Readln(i);
   if i = 5 then
      Writeln(‘bilangan tersebut 5');
end.

4.2. Percabangan if … then … else …


Sintak percabangan if..then..else diberikan oleh :
if <kondisi> then
<pernyataan1>
else
<pernyataan2>

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.

4.3 Percabangan. if … then … else if …


Sintak percabangan if..then..else if.. diberikan
oleh :

if <kondisi1> then <pernyataan1>


else if <kondisi2> then
<pernyataan2>
else if <kondisi3>
then<pernyataan3>

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.

Bentuk if … then … else if di atas dapat diubah ke


case .. of

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

1. Buatlah program untuk menentukan : nilai angka


mahasiswa, nilai mutu dengan input : nama mahasiswa,
nim, tugas, quis, UTS dan UAS dengan rumus :

47
Nilai := 15% T + 15% Q + 35% UTS +
35% UAS
Gunakan: Case … of

2. Tentukan kelulusan suatu program studi dengan


persyaratan sbb:
Matematika , jika Agama >= 80, Matematika >=80, IPA >=
75
Teknik Elektro, jika Agama >= 80, Matematika >= 65, IPA
>= 70
Teknik Informatika,,jika Agama >=80, Matematika >= 60,
IPA >= 80

3. Tentukan posisi garis y = ax + b dan lingkaran x2 + y2 = r2,


jika
D > 0, garis memotong lingkaran;
D = 0, garis menyinggung lingkaran;
D < 0, garis tidak memotong lingkaran

4. Buatlah program untuk menentukan jenis dan nilai akar-


akar persamaan kuadratik ax2 + bx + c = 0, dengan D = b2 –
4ac

5. Tentukan GajiTotal seorang pegawai yang dirumuskan


sebagai berikut
GajiTotal := GajiPokok + BonusKerja +
TunjanganAnak
dengan :
GajiPokok : Golongan 1 Rp.1000.000,- ;
Golongan 2 Rp.2000.000,-;
Golongan 3 Rp. 3000.000,-
Golongan 4 Rp 4.000.000,-
BonusKerja : MasaKerja < 10 th à bonus :=
10%*GajiPokok;

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;

Kondisi : ungkapan boolen ( ungkapan pembanding =, <>, >,


>=, <. <=)
Pernyataan : statemen tunggal/ majemuk jika kondisi benar

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.

5.3 Repeat … until


Repeat … until merupakan salah salah bentuk looping, yang
mana pengulangan akan terus dilakukan selama <kondisi>
bernilai salah.
repeat
<pernyataan>
until <kondisi>

Kondisi : ungkapan boolen ( ungkapan pembanding =, <>, >,


>=, <. <=)
Pernyataan : statemen tunggal/ majemuk jika kondis

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

1. Buatlah program untuk menentukan jumlah bilangan 1 + 3


+ 5 + … + 2n – 1
2. Buatlah program untuk menentukan jumlah bilangan 1 + 3
+ 6 + 10 + 15 + 21 + 28.
3. Buatlah program untuk menghitung bilangan prima antara
2 sampai dengan 100 dengan menggunakan while...do

4. Gunakan pengulangan repeat..until untuk menghitung deret


bilangan 1 – 2 + 3 – 4 + 5 – 6 + 7 – 8 + 9 – 10

5. Hitunglah deret 2 + ¾ + 4/9 + 5/16 + … + (n+1)/n2


dengan menggunakan for..to..do

6. Buatlah program untuk membuat tampilan sebagai berikut

55
*
**
***
****
*****
******
*******

7. Buatlah program untuk membuat tampilan sebagai berikut


*****
* *
* *
* *
*****

8. Buatlah program untuk menampilkan urutan huruf sebagai


berikut.
abcdefgh
abcdefg
abcdef

ab
a

56
BAB VI
LARIK

6.1. Larik Dimensi Satu


Larik dimensi satu merupakan bentuk larik yang hanya
membutuhkan satu indeks saja.
Sintak:
peubah := array[sub-range] of tipe-data
pengubah : suatu pengubah yang disebut pengubah kendali,
dapat

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.

2. Larik Dimensi Dua


Sintak:
peubah := array[sub-range] of tipe-data

pengubah : suatu pengubah yang disebut pengubah kendali,


dapat
berupa pengenal dari tipe integer, char, boolean
atau
tipe terbilang.
Sub-range : nilai dengan rentang: 1..10, 1..100, ‘a’.. ‘g’, dan
sebagainya.
Tipe-data : tipe data, misalnya: integer, real, word, dsb

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

1. Buatlah program untuk menghitung sejumlah data


sebagai berikut yang diinput dari piranti luar (keyboard).
5, 8, 19, 7, 4, 10, 12, 4, 6, 21, 23, 22, 5, 17, 13

2. Buatlah program untuk menampilkan bentuk matrik


berikut yang nilainya diinput dari piranti masukan
(keyboard).

−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

4. Diberikan dua buah matrik sebagai berikut.

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

5. Buatlah program untuk menghitung invers matrik berikut


−1 3 3
[
A= 0 −4 2
2 5 4 ]

61
BAB VII
FUNGSI

7.1. Fungsi Dasar

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

4. Pankat Dua (sqr)


Menghitung nilai pangkat dua dari suatu argumen.

63
sintak : sqr(x)
x : argumen

Contoh.

program kuadrat;
Uses wincrt;
x : real;

begin
x:=sqr(3);
write(x:10:6);
end.

##9.000000

5. Akar Kuadrat (sqrt)


Menghitung nilai akar kuadrat dari suatu argumen
sintak : sqrt(x)
x : argumen

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

8. Fungsi Trigonometri: sin, cos, tan,


Menghitung nilai fungsi trigonometri dari suatu argumen.
sintak : sin(x),
cos(x),
tan(x)
x : argumen (dalam radian)

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

9. Fungsi Invers Trigonometri: arcsin, arccos, arctan,


Menghitung nilai fungsi trigonometri dari suatu argumen.
66
sintak : arcsin(x),
arccos(x),
arctan(x)
x : argumen (dalam radian)

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.

7.2. Fungsi Buatan

Function merupakan sub-program (modul) yang digunakan


pada Pascal yang dirancang hanya untuk mengembalikan satu
nilai melalui indetifier function

Pada function, indentifier berfungsi sebagai :


a. Nama fungsi, yang dengan nama fungsi tersebut fungsi
digunakan
b. Variabel, dengan variabel tersebut function mengembalikan
nilai yang dihasilkan
di dalam blok function.
function
<indentifierfungsi>(<parameter>:<tipe_data>):<tipe_data>;
<deklarasi variabel, konstanta, tipe data>
begin

67
<statement>
<statement>
end;

Buatlah program dengan menggunakan modul function untuk


menghitung gaya (F) yang dihasilkan dari perkalian massa (m)
dan percepatan (a)
Fungsi terdiri dari dua parameter yaitu massa (a) dan
percepatan (a). Tipe data nilai fungsi tergantung dari tipe data
parameter

Contoh

program gaya;
uses wincrt;

var
m, a : real;

function F(m, a:real):real;


begin
F:=m*a
end;

{-----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))

function f(x : real):real;


begin
f:=a*exp(n*ln(x));
end;

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

1. Buatlah program dengan menggunakan function untuk


menghitung faktorial n! = 1´2´3´4´5´6´…´ n

2. Buatlah sebuah fungsi untuk menghitung deret Fibonacci


yang diberikan sebagai berikut.
0, 1, 1, 2, 3, 5, 8, 13, 21, …

3. Buatlah program untuk menghitung fungsi f(x) = 3x + 2

4. Diberikan sebuah fungsi berikut


f(x) = x2 + 3x
Buatlah fungsi untuk menghitung operasi fungsi berikut.
a. h(x) = 2f(x) – 6
b. g(x) = 1 + [f(x)]2

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 banyak digunakan pada program terstruktur


karena:Merupakan penerapan konsep modular, yaitu memcah-
mecah program yang rumit menjadi sub- program yang lebih
sederhana dalam bentuk prosedur-prosedur.Untuk hal-hal yang
dilakukang secara berulang, maka cukup dituliskan dalam
sebuah prosedur yang sewaktu-waktu dapat dipanggil atau
dipergunakan bila diperlukan

Secara umum, Prosedur dituliskan sebagai berikut

Procedure <nama_prosedur>(parameter
:tipe_data);

{deklarasi variabel}

begin


end.

Bagian dari prosedur diberikan sebagai berikut.

Program <nama_program>

{deklarasi variabel}
Procedure <nama_procedure>
begin

… 71

end.
begin
….
….
end

8.2 Tipe Prosedur

1. Prosedur Tanpa Parameter

Contoh

Program Prosedur1;

Procedure garis;
begin
Writeln(‘----------‘);
end;

begin
garis;
Writeln(‘Matematika’):
garis;
end.

2. Prosedur dengan Parameter


a. Parameter Lokal

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.

Pada gambar di atas, variabel a, b bersifat lokal yang hanya


digunakan pada Prosedur kesatu, sedangkan variabel c, d
bersifat lokal yang hanya digunakan pada Prosedur kedua.

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

1. Buatlah prosedur untuk menghitung rata-rata n buah


bilangan yang diiput dari inputan user.

2. Gunakanlah Prosedur untuk membuat program


menghitung luas:
a. lingkaran
b. Tabung
c. Bola

3. Buatlah program dengan menggunakan prosedur untuk


menghitung hubungan
c2 = a2 + b2

4. Buatlah program untuk menghitung deret bilangan genap


dari mulai 2 sampai dengan 30 dengan input dari user.

5. Buatlah program untuk menghitung faktorial n buah


bilangan dengan menggunakan Procedure

6. Bualah program untuk mengitung 1 + 2 + 4 + 7 + 11 + 16


+ 22 + 29 + 37 + 46 dengan menggunakan Procedure

DAFTAR PUSTAKA

Jogiyanto, Turbo Pascal jilid 1, Andi Offset, Yogyakarta

Jogiyanto, 2005, Teori Dan Aplikasi Program Komputer


Bahasa Turbo Pascal (Jilid 2) edisi 2, Andi Offset,
Yogyakarta.

76
Kadir, A., 2008, Dasar-Dasar Pemrograman Pascal, 4th ed.,
Andi Offset, Yogyakarta.

Pranata, A., Algoritma dan Pemrograman, J&J Learning,


Yogyakarta

Supardi, Y., 2006, Cara Mudah Belajar Pascal dan Flowchart,


Dinastindo, Jakarta.

Suryadi H.S & Sumin, 2000, A., Pengantar Algoritma dan


Pemrograman, Diktat Mata Kuliah Gunadharma, Jakarta

77

Anda mungkin juga menyukai