Pascal 16 Rangkuman Soal Pascal PDF
Pascal 16 Rangkuman Soal Pascal PDF
Output
Luas
Start
Output
Luas
End.
2. Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu
dipenuhi. Tinjau kembali algoritma pengurutan data.
Pemilihan dapat ditulis dalam struktur umum :
If kondisi then aksi
Dalam bahasa Indonesia, if berarti “jika” dan then artinya “maka”.
Kondisi adalah persyaratan yang dapat bernilai benar atau salah.
Aksi hanya dilaksanakan apabila kondisi bernilai benar. Sebaliknya,
apabila kondisi bernilah salah, maka aksi tidak dilaksanakan.
Perhatikan bahwa kata yang digarisbawahi, if dan then merupakan
kata kunci (keywords) untuk struktur pemilihan ini.
Dalam kehidupan sehari-hari, kita sering menuliskan pelaksanaan
tindakan bila suatu persyaratan dipenuhi, misalnya :
If Amir memperoleh juara kelas then
Ayah akan membelikannya sepeda
If jalan Dago macet then
Ambil alternative jalan Dipati Ukur
If mobilmu rusak then
Pakai saja sepeda motorku
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila
kondisi dipenuhi (bernilai benar), dan tidak member pilihan aksi lain
bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum ialah
memilih satu dari dua buah aksi bergantung pada nilai kondisinya
If kondisi then
Aksi 1
Else
Aksi 2
3. Pengulangan
Latihan Algoritma
A. PILIHAN GANDA
Penjelasan
(di isi dengan)
1. Diberikan potongan algoritma sbb :
B. ESSAY
Buatlah sebuah urutan langkah (Algoritma sederhana dalam bahasa
sehari-hari) untuk soal berikut sesuai dengan yang anda pikirkan :
a. Perjalanan dari Bandung Ke Jakarta.
b. Cara membuat Bala-bala.
c. Supaya tidak dimarahi guru ketika tidak mengerjakan PR.
d. 1. Menyatakan Cinta supaya diterima (Bagi Laki-laki)
2. Menolak cinta supaya tidak tersinggung (Bagi Perempuan)
a. Judul Program
Program pada bagian deklarasi merupakan kata yang berguna
untuk memberikan judul program yang akan dibuat.
Syarat untuk nama program
- Antara kata program dan nama program boleh dipisahkan
dengan spasi, enter dan lain-lain.
- Nama program harus merupakan suatu kesatuan dan tidak
boleh dipisah (spasi)
- Tidak boleh terdapat tanda-tanda aritmetika seperti “+”, “–“,
“∗”, “/”, dan lain-lain.
- Boleh menggunakan garis bawah.
2) Unit WinCrt
Unit Crt merupakan unit yang mengatur kerja layar dan
keyboard atau I/O. Sebagai contoh, perintah CLRSCR yg
digunakan untuk membersihkan layar tidak akan berjalan
tanpa menggunakan perintah Uses WinCrt; jadi syarat mutlak
untuk menggunakan perintah-perintah yang terdapat di dalam
unit Crt adalah menggunakan kata “Uses WinCrt”
Perintah Unit Crt:
AssignCrt ClrEol ClrScr
Delay DelLine GotoXY
… … …
WhereX WhereY Readkey
3) Unit Dos
Unit Dos merupakan unit yang bekerja di dalam system Dos
Perintah Unit Dos:
GetDate SetDate GetTime
PackTime UnPackTime setFtime
… … …
setCbreak SetVerify GetVerify
4) Unit WinDos
Unit WinDos merupakan unit yang bekerja di dalam system Windows
Perintah Unit WinDows:
GetDate GetFTime GetTime
PackTime SetDate SetFtime
… … …
GetCurDir RemoveDir SetCurDir
7) Unit Overlay
Unit overlay adalah unit yang mengatur pembagian sebuah program
menjadi 2 file atau lebih.
Perintah Unit Overlay:
OvrClearBuf OvrGetBuf OvrGetRetry
Ovrlunit OvrlnitEMS OvrSetBuf
OvrsetRetry
8) Unit Printer
Unit Printer adalah unit yang mengatur kerja printer sehingga
dapat dilakukan pengiriman langsung ke printer. Kata yang
merupakan pengganti operasi ke printer adalah lst. Jadi bila
diberikan kata lst tanpa menggunakan Uses Printer; maka
proses ke printer tidak akan berjalan.
c. Type
Type adalah perintah yang berguna untuk mendefinisikan suatu
type yang akan dimasukkan ke dalam suatu variable.
d. Const
Perintah Const adalah perintah untuk mendefinisikan suatu
konstanta
Tata cara penulisan konstanta adalah sebagai berikut :
- Menuliskan Const pada awal pendefinisian konstanta
- Konstanta tidak hanya berlaku untuk bilangan tetapi bisa juga
berupa suatu string.
- Dalam konstanta boleh terdapat operasi aritmatika perkalian,
pembagian, penambahan dll.
- Nama konstanta tidak mengandung spasi dan tanda aritmetika.
e. Var
Kata var merupakan tanda dimulainya pendefinisian variable-
variable yang akan digunakan pada program.
Tata cara penulisan
- Pendefinisian variable dimulai dengan kata Var dan
memperhatikan tata cara penulisan pendefinisian variable,
yaitu :
Nama_var1, nama_var2, … tipe variable
- Nama variable tidak boleh mengandung spasi dan tanda
aritmatik, serta tidak boleh dimulai dengan bilangan.
- Nama variable tidak boleh sama dengan nama perintah
2) Non Numerik
a) Tipe String
Tipe string adalah tipe yang hanya terdiri dari kata-kata.
b) Tipe Char
Tipe yang variabelnya hanya dapat menampung satu
karakter saja.
c) Tipe Bolean
Tipe variable yang hanya menampung dua kemungkinan,
yaitu False atau True.
f. Operator
Sebelum menyusun program yang mengolah data dan variable,
anda harus mengenal operator-operator di dalam Pascal. Operator
adalah symbol-simbol atau kata-kata yang dipakai untuk
melaksanakan suatu operasi terhadap data dan variable. Secara
table, maka operator-operator tersebut dapat dikelompokkan
sebagia berikut :
g. Label
Label adalah pendeklarasian kata-kata atau tanda yang digunakan
untuk menyatakan suatu tempat pada program. Label ini dapat
berisi apa saja, kecuali tanda-tanda operasi aritmetik, seperti +, –
dan lain-lain.
Pilihan Ganda
7. Tipe data di bawah ini mana yang tidak dapat melakukan operasi
aritmatika
a. integer
b. byte
c. real
d. Boolean
e. Salah semua
9. Yang paling rendah dari operasi logika AND, OR dan NOT adalah :
a. AND
b. NOT
c. OR
d. semua sama
e. salah semua
10. Manakah ekpresi yang tidak dapat dilakukan oleh tipe data
integer
a. x := x + 5
b. y := y - z
c. k := k / 5
d. r := r * s
e. Salah semua
11. Unit yang langsung terpasang pada Turbo Pascal sehingga untuk
menggunakan perintah-perintah yang terdapat di dalam unit system
ini tidak perlu menggunakan perintah uses adalah
a. Unit WinCrt
b. Unit System
c. Unit WinDos
d. Unit String
e. Unit Dos
ESSAY
5. Apabila dideklarasikan :
Var
A, B, C : Real;
X, Y, Z : Integer;
P : String [40];
H : Char;
Dan diketahui
A = 3.2 B = 6.0 C = 1.5
X = 4 Y = 63 Z = 17
Apa hasil dari ekspresi-ekspresi berikut ini :
a. A := 0.5 * A f. P := ‘Selamat’ +
b. B := A/4 ‘Belajar’
c. X := X + 1 g. H := #65
d. Y := X * 2 h. H := ‘Z’
e. C := C – A – B i. X := 10 div 4
j. Z := 11 mod 4
Begin
Write (‘sedang belajar pascal’);
End.
Begin
Write (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
Write (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
End.
Begin
Write (A);
End.
Praktek 4 (Ketikkan dalam program Pascal)
Program Mencetak4;
Uses WinCrt;
Const
A : Integer = 100;
Begin
Write (‘Nilai yang terdapat di A adalah’,A);
End.
Hasil yang tampak pada layar adalah “Nilai yang tedapat di A adalah :
100)
Pada layar hasil akan tercetak angka 100, yang merupakan hasil dari
proses program di atas.
Dari contoh program di atas dapat disimpulkan beberapa hal mengenai
Write dan Writeln, yaitu :
• Segala sesuatu yang hendak di cetak harus terdapat diantara
Begin
Write (‘Masukan suatu angka :’ );
Read (A);
Writeln (‘Angka yang baru Anda masukan adalah : ‘, A)
End.
Begin
Write (‘Masukan Nama Anda :’ );
Read (A);
Writeln (‘Selamat Belajar Pascal ‘, A)
End.
Begin
Writeln (‘Tekan Karakter apa saja:’ );
Ch := Readkey;
Writeln (‘Karakter yang baru Anda tekan adalah ‘,Ch)
End.
Begin
Write (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
Writeln (‘sedang belajar pascal’);
End.
7. Readkey adalah
a. Fungsi masukan
yang hanya akan
mengambil satu
karakter masukan.
b. Fungsi masukan
yang boleh
mengambil
beberapa karakter
c. Fungsi Keluaran
yang mengambil
satu karakter
masukan
d. Fungsi Keluaran
yang boleh
mengambil
beberapa karakter
e. Salah semua
4.1. Kondisi
Untuk menyatakan kondisi, diperlukan dua buah besaran yang
dibandingkan. Untuk membandingkan kondisi ini diperlukan tanda-
tanda pembanding.
= (sama dengan) ; > (Lebih besar) ; < lebih kecil ; > = (lebih
besar atau sama dengan ) ; < = (lebih keil atau sama dengan) ;
< > tidak sama dengan.
Bila suatu pernyataan kondisi memerlukan dua kondisi, dapat
digabungkan dengan operator Or dan And.
Kondisi And (dan) Kondisi Or (atau)
Kondisi Kondisi Hasil Kondisi Kondisi Hasil
1 2 1 2
Benar Benar Benar Benar Benar Benar
Benar Salah Salah Benar Salah Benar
Salah Benar Salah Salah Benar Benar
Salah Salah Salah Salah Salah Salah
4.2. IF … Then
Kondisi if … then merupakan kondisi yang paling sederhana.
If kondisi then proses untuk kondisi benar;
Contoh Praktek 1 (Ketikkan dalam program Pascal)
Program If_01;
uses WinCrt;
Var
A, B : Integer;
Begin
Begin
Begin
write ('Masukkan Nilai Suhu: ');
readln(Suhu);
If Suhu < 0 then
Write ('Bentuk Benda Beku')
Else If (Suhu>=0) And (Suhu<=100) then
Write(‘Bentuk Benda Cair’)
Else
Write(‘Bentuk Benda Gas’);
End.
Contoh Soal
1. Buatlah program yang menanyakan Nilai jika Input :
antara 0 – 69 Muncul (Nilai Kurang perlu remedial)
antara 70 – 100 Muncil (Nilai Sudah Bagus tidak remedial)
4.5. Case … Of
Case…Of adalah pemecahan dari if bertingkat. Pada Case…Of dapat
dilakukan perbandingan beberapa kondisi dari suatu variable.
Case variable of peluang; end;
Dimana variable adalah variable yang akan diperiksa isinya; peluang
adalah kemungkinan isi variable dan apa yang dilakukan jika peluang
tersebut benar. Setiap pelung harus diakhiri dengan tanda titik koma (;).
Jangan lupa memberikan kata End; pada akhir case.
1. program MenuRestoran;
2.
3. Uses
4. Crt;
5.
6. Var
7. pilih : integer;
8.
9. begin
10. writeln('Menu Restoran Junk Food');
11. writeln('-----------------------');
12. writeln('1. Cireng gila');
13. writeln('2. Bala-bala gelo');
14. writeln('3. Gehu garelo);
15. write('Pilih pilihan anda : ');
16. readln(pilih);
Program Case_02;
Uses wincrt;
Var
Ch : char;
Begin
Write (‘masukkan suatu karakter : ‘);
Ch := Readkey;
Case Ch of
‘A’ : Writeln (‘Anda menekan A’);
‘B’ : Writeln (‘Anda menekan B’);
‘C’ : Writeln (‘Anda menekan C’);
End;
End.
Begin
ClrScr;
Write (‘masukkan suatu bilangan ‘);
Readln (I);
Case I of
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 :
Writeln (‘Anda menekan antara 1 hingga 10’);
11,12,13,14, 15, 16, 17, 18, 19, 20 :
Writeln (‘Anda menekan antara 11 hingga 20’);
21, 22, 23, 24, 25, 26, 27, 28, 29, 30 :
Writeln (‘Anda menekan antara 21 hingga 30’);
End;
End.
Begin
ClrScr;
Write (‘masukkan suatu bilangan ‘);
Readln (I);
Case I of
1..10 :
Begin
Writeln (‘Anda menekan antara 1 hingga 10’);
Writeln (‘masukan yang tepat !)
End;
11..20 :
Begin
Writeln (‘Anda menekan antara 11 hingga 20’);
Writeln (‘Angka yang tertinggi adalah 20 !’);
End;
21..30 :
Begin
Writeln (‘Anda menekan antara 21 hingga 30’);
Writeln (‘Tepatnya adalah :’,i);
End;
Else Begin
Writeln (‘Masukan anda tidak memenuhi peluang ‘);
Writeln (‘coba jalankan program sekali lagi’);
End;
End;
End.
program case_01;
Uses WinCrt;
Var
Angka : Real;
Pilihan : Integer;
Begin
writeln;
write('Pilihan : ');
readln(pilihan);
1 : Begin
write('Angka mile : ');readln(angka);
write(angka:5:3,' mile = ');
writeln(angka * 1.6093:10:4,' kilometer');
end;
2 : Begin
write('angka yard : ');readln(angka);
write(angka:5:3,' Yard = ');
writeln(angka * 0.9144:10:4,' meter');
end;
3 : Begin
write('Angka foot : ');readln(angka);
write(angka:5:3,' foot = ');
writeln(angka * 0.3048:10:4,' meter');
end;
4 : Begin
write('Angka inch : ');readln(angka);
write(angka:5:3,' mile = ');
writeln(angka * 2.54:10:4,' centimeter');
end;
end;
end.
Pilihan Ganda
2. Jika dari perintah Input(N) soal di atas, dimasukkan data 10, maka Tampilan
dari Output(N) adalah
a. 0 d. 5
b. 10 e. salah
c. -10
semua
Var
Angka : Real;
Pilihan : Integer;
Begin
ClrScr;
Writeln('Konversi Ukuran Panjang ');
writeln('Ketikkan angka yang anda pilih ');
Writeln('1. Mile ke Kilometer');
Writeln('2. Yard ke Meter');
Writeln('3. Foot ke Meter');
Writeln('4. Inch ke Centimeter');
writeln;
write('Pilihan : ');
readln(pilihan);
Case pilihan Of
1 : Begin
write('Angka mile : ');readln(angka);
2 : Begin
write('angka yard : ');readln(angka);
write(angka:5:3,' Yard = ');
writeln(angka * 0.9144:10:4,' meter');
end;
3 : Begin
write('Angka foot : ');readln(angka);
write(angka:5:3,' foot = ');
writeln(angka * 0.3048:10:4,' meter');
end;
4 : Begin
write('Angka inch : ');readln(angka);
write(angka:5:3,' Inch = ');
writeln(angka * 2.54:10:4,' centimeter');
end;
end;
end.
Bila golongan = 4 atau 6 maka gaji = (golongan * jam kerja * upah per jam)
rupiah.
Bila golongan = 5 maka gaji = (golongan * jam kerja * upah per jam) rupiah
Buat program yang menanyakan golongan, jam kerja dan upah per jam,
lalu menghitung besarnya gaji. Setelah dihitung, besarnya gaji, besarnya
pajak, besarnya bonus, dan lamanya berlibur akan dicetak ke layer.
Begin
Clrscr;
i := 1;
While I <= 10 do
Begin
Writeln (‘Nilai I adalah :’,i);
Inc(i)
End;
End.
Var
I : Integer;
Begin
Clrscr;
i := 0;
repeat
inc(i);
writeln (‘Nilai I adalah :’,i);
Until i = 10;
End.
Var
I : Integer;
Begin
Clrscr;
i := 0;
repeat
inc(i);
j := 0
repeat
inc(j);
writeln (‘Nilai j adalah :’,j);
until j = 2;
writeln (‘Nilai I adalah :’i)
Until i = 5;
End.
2. Begin
J := 1;
For i:= 1 to 5 do
Begin
Writeln ( i , ’ ‘ , j );
j := i – 1;
end;
end.
b. 1 1
2 2
3 3
c. 1 0
2 1
3 2
4 3
5 4
d. 1 5
2 4
3 3
4 2
5 1
e. 1 1
2 0
3 1
4 2
5 3
Hasil outputnya :
a. 15
b. 20
c. 35
d. 40
e. Salah semua
Essay
6.1. Pendahuluan
Selama ini, segala proses pemecahan masalah dilakukan di dalam
bagian utama program, yaitu antara BEGIN dan END. Apabila masalah
yang harus dipecahkan sangat besar dan kompleks, tentulah bagian
utama program akan tampak sangat semrawut.
Satu-satunya cara untuk mengatasi hal ini adalah dengan
menambahkan beberapa blok program baru ke dalam blok program
yang sudah ada, untuk membantu bagian utama program.
Masalah yang sangat kompleks dipecah terlebih dahulu menjadi
beberapa sub-masalah yang lebih sederhana. Setiap sub-masalah yang
ada kemudian ditangani oleh sebuah blok_program. Jadi, di dalam
sebuah program Pascal akan terdapat bagian deklarasi, beberapa blok
program pembantu, dan bagian utama program.
Blok program pembantu adalah program Pascal biasa yang ditulis
menurut aturan tertentu. Jadi sebuah blok program akan memiliki judul,
bagian deklarasi, dan kumpulan pernyataan diantara BEGIN dan END.
Di dalam bahasa Pascal, blok program pembantu lebih dikenal dengan
sebutan MODUL PROGRAM.
Bahasa Pascal mengenai adanya dua buah modul program, yaitu
prosedur (PROCEDURE) dan fungsi (FUNCTION), kedua jenis modul
program ini merupakan ciri khas yang dimiliki bahasa Pascal.
Masalah yang akan dipecah-pecah menjadi beberapa sub-
masalah. Setiap sub-masalah ditangani oleh sebuah prosedur atau
fungsi tersendiri. Kumpulan beberapa prosedur dan fungsi akan
membentuk program Pascal yang terpadu dan terstruktur.
Berbagai hal tentang prosedur dibahas dalam Bab 6 dan Bab 7,
sedang tentang fungsi dibahas pada Bab 8.
Begin
{ ---- Penulisan Petunjuk --- }
Writeln (‘Apabila program ini dijalankan, ‘);
Writeln (‘Anda akan diminta menuliskan ‘);
Writeln (‘tiga buah angka. ‘);
Writeln;
Writeln (‘Jumlah dan Rata_2 dari ketiga ‘);
Writeln (‘bilangan tersebut akan di hitung’);
Writeln(‘dan ditampilkan ke layer ‘);
Writeln; Bagian Utama
Program
{ --- menghitung jumlah dan rata_rata --- }
Write (‘Masukkan tiga angka a, b, c : ‘);
Readln (a, b, c);
Jumlah := a + b + c;
Rata := Jumlah/3;
Writeln;
Writeln (‘Jumlahnya = ‘,Jumlah);
Writeln (‘Rata-ratanya =’,Rata);
End.
PROCEDURE Petunjuk_Program;
Begin
Writeln (‘Apabila program ini dijalankan, ‘);
Writeln (‘Anda akan diminta menuliskan Blok
‘); Prosedur
Writeln (‘tiga buah angka. Petunjuk_Program
‘);
Writeln;
Writeln (‘Jumlah dan Rata_2 dari ketiga ‘);
Writeln (‘bilangan tersebut akan di hitung’);
Writeln(‘dan ditampilkan ke layer ‘);
Writeln;
End;
Begin
Petunjuk_Program;
Write (‘Masukkan tiga angka a, b, c : ‘);
Readln (a, b, c); Bagian Utama
Jumlah := a + b + c; Program
Rata := Jumlah/3;
Writeln;
Writeln (‘Jumlahnya = ‘,Jumlah);
Writeln (‘Rata-ratanya =’,Rata);
End.
Contoh 6-3.1 :
- Judul prosedur yang benar :
PROCEDURE Petunjuk_program;
PROCEDURE Maksimum;
PROCEDURE Cari_jumlah;
- Judul Prosedur yang salah :
PROCEDURE Petunjuk Program (karena mengandung spasi)
PROCEDURE 123BL (Karena diawali angka)
Perhatikan kembali blok prosedur Petunjuk_Program pada contoh 6-2.
kumpulan pernyataan yang terdapat di dalam prosedur tersebut diawali
oleh BEGIN dan diakhiri oleh END. Kata END yang mengakhiri suatu
prosedur tidak diikuti oleh tanda titik, melainkan tanda titik koma (;).
Tanda titik (.) hanya diperbolehkan mengikuti kata END milik bagian
utama program.
PROGRAM Menghitung_Luas_Bola;
Const
pi = 3.14; Bagian deklarasi
konstanta dan variabel
Var
Jari : Integer;
Luas : Real;
PROCEDURE Hitung_Luas;
BEGIN Blok prosedur
Luas := 4*pi*sqr(Jari); Hitung Luas
Writeln(‘Luas Bola = ‘, Luas);
END;
BEGIN
Write (‘tuliskan jari-jari Bola = ‘);
Bagian
Readln(Jari); Utama
Hitung_luas; Program
Writeln(‘ --- selesai --- ‘);
END.
Contoh 6-4.1
PROGRAM Menghitung_Luas_Bola;
Const
pi = 3.14; Bagian deklarasi
Global
Var
Jari : Integer;
PROCEDURE Hitung_Luas;
BEGIN
Write (‘tuliskan jari-jari Bola = ‘);
Bagian
Readln(Jari); Utama
Hitung_luas; Program
Writeln(‘ --- selesai --- ‘);
END.
PROCEDURE Kesan;
BEGIN
Writeln (‘saya sedang belajar bahasa Pascal ‘);
Writeln (‘saya pusing pisan ‘);
Writeln (‘walaupun saya sudah berusaha tetap aja bingung….’);
END;
Begin
Kesan;
Writeln (‘ dan kepala saya pusing tujuh keliling….’);
End.
f. Tuliskan dan jalankan program di atas !
g. Jelaskan cara kerja program !
Jawab
a. …..
b. Program di atas terdiri dari sebuah prosedur, yaitu prosedur
kesan. Prosedur ini dipanggil dari bagian utama program. Pada
saat prosedur kesan dipanggil, aliran program akan meloncat ke
awal prosedur tersebut, dan menulis kalimat :
Saya sedang belajar bahasa pascal
Saya pusing pisan
Walaupun saya sudah berusaha tetap aja bingung…
PROCEDURE Satu;
BEGIN
Writeln (‘saya sedang belajar bahasa pascal ‘);
PROCEDURE Tiga;
BEGIN
Writeln (‘walaupun sudah berusaha …’);
END;
BEGIN
Write (‘Tulis nama anda : ‘);
Readln (a);
Writeln (‘ Nama Saya : ‘, a);
Satu;
Dua;
Tiga;
END;
b. Tuliskan dan jalankan program di atas !
c. Sebutkan semua variable yang digunakan serta tipe dan
ruang lingkupnya !
d. Jelaskan aliran kerja program !
Jawaban
a. …..
b. a adalah variable jenis string yang memiliki ruang lingkup global,
sehingga dikenal oleh seluruh bagian program.
c. Blok program utama akan menanyakan nama dan menyimpannya
di variable a, setelah itu, prosedur satu dipanggil, disusul prosedur
dua dan terakhir prosedur tiga. Perhatikan cara memanggil
prosedur (dengan menuliskan nama prosedur_tersebut).
PROCEDURE Hitung_volume;
BEGIN
Isi := 4/3 * pi * r * r * r
END;
BEGIN
Tanya_jari_jari;
Hitung_luas;
Hitung_Volume;
Writeln (‘Luas Bola = ‘, luas);
Writeln (‘Volume Bola = ‘, Isi);
END.
(a) Ketikkan dan jalankan program di atas !
(b) Jelaskan aliran kerja program diatas !
(c) Sebutkan semua variable yang digunakan, beserta ruang
lingkupnya !
(d) Dapatkah prosedur Tanya_jari_jari dipanggil dari prosedur
hitung_luas ?
(e) Dapatkah prosedur Hitung_luas dipanggil dari
Tanya_jari_jari ?
Jawab
a. ….
b. Program di atas terdiri dari sebuah blok deklarasi konstanta,
sebuah deklarasi variable, tiga buah prosedur dan sebuah blok
program utama. Prosedur Tanya_jari_jari akan menanyakan jari-
jari lingkaran, prosedur hitung_luas menghitung luas bola, dan
prosedur hitung_volume menghitung volume bola. Ketiga
prosedur dipanggil dari blok program utama. Mula-mula prosedur
Tanya_jari_jari dipanggil. Setelah variabl terisi, maka prosedur
hitung_luas dipanggil. Luas bola dihitung oleh prosedur ini dan
hasilnya disimpan ke dalam variable luas. Selanjutnya prosedur
hitung_volue dipanggil. Volume bola dihitung oleh prosedur ini,
dan hasilnya ke dalam variable isi.
c. pi adalah konstanta global, r, Luas dan isi adalah variable global.
Semua konstanta dan variable tersebut dikenali oleh seluruh
bagian program.
d. Dapat, sebab prosedur Tanya_jari_jari diletakkan sebelum
prosedur hitung_luas.
e. Tidak dapat, sebab prosedur hitung_luas diletakkan di bawah
prosedur Tanya_jari_jari.
Latihan
BEGIN
Write (‘Tuliskan jari jari Bola : ‘);
Readln (r);
Luas := 4 * pi * r * r;
Isi := 4/3 * pi * r * r * r;
Writeln (‘ luas Bola = ‘, Luas);
Writeln (‘Volume Bola = ‘, Isi);
END;
BEGIN
Hitung_luas_dan_Volume;
END.
i. Ketikkan dan jalankan program di atas !
ii. Jelaskan aliran kerja program di atas !
iii. Sebutkan semua variable yang digunakan beserta ruang
lingkupnya !
BEGIN
Petunjuk;
Repeat
Writeln;
Write(‘Tuliskan panjang (dalam satuan meter) : ‘);
Readln(Meter);
If Meter <> AKhirData Then
Begin
Sentimeter := Faktor * Meter;
Writeln(‘Panjang = ‘, sentimeter, ‘ cm);
End;
Until Meter = AKhirData;
Writeln;
Writeln(‘ --- program berakhir ---‘);
End.
Pertanyaan
ii. Tuliskan dan jalankan program di atas !
iii. Sebutkan semua variable dan konstanta yang digunakan
beserta tipe dan ruang lingkupnya !
iv. Jelaskan aliran kerja program !
PROGRAM Memasukkan_Bilangan;
PROCEDURE negatif;
BEGIN
Writeln (‘Bilangan yang anda ketikkan negatif’)
END;
PROCEDURE positif;
BEGIN
Writeln (‘ Bilangan yang anda ketikkan positif ‘);
END;
PROCEDURE Nol;
BEGIN
Writeln (‘ Bilangan yang anda ketikkan nol ‘);
END;
PROCEDURE input;
VAR
Angka : Integer;
BEGIN
Writeln (‘ Masukkan sembarang angka : ‘);
Readln (Angka);
IF Angka > 0 Then Positif;
IF Angka = 0 Then Nol;
IF ANgka < 0 Then Negatrif;
END;
BEGIN
Input;
END.
Program Jumlah_dan_Hasil_Kali;
Var
a, b, c : Integer;
Jumlah : Integer;
Kali : Integer;
PROCEDURE Penjumlahan;
Begin Blok
Prosedur
Jumlah := a + b + c; Pertama
End;
PROCEDURE Perkalian;
Begin Blok
Prosedur
Kali := a * b * c; Kedua
End;
PROCEDURE Jumlah_Kali;
Begin
Penjumlahan;
Perkalian; Blok
Prosedur
Writeln (‘jumlahnya = ‘, jumlah); Ketiga
Writeln (‘’Perkaliannya = ‘, kali);
End;
Var
a, b, c : Integer
PROCEDURE jumlah_kali;
Var
Jumlah : Integer;
Kali : Integer;
Begin
Penjumlahan;
Perkalian;
Writeln (‘jumlahnya = ‘, jumlah);
Writeln (‘’Perkaliannya = ‘, kali);
End;
Begin
Write (‘Tuliskan tiga buah bilangan : ‘); Bagian
Readln (a, b, c); Utama
Jumlah_kali; Program
End;
Program Jumlah_dan_Hasil_Kali;
Var
a, b, c : Integer;
Begin
Jumlah := x + y + z;
Kali := x * y * z;
Writeln(‘jumlahnya = ‘, jumlah);
Writeln(‘perkaliannya = ‘, kali);
End;
Begin
Write (‘tulis tiga bilangan :’);
Readln(a, b, c);
Jumlah_kali(a, b, c);
End.
Begin
Write (‘tulis tiga bilangan : ‘);
Readln (a, b, c);
Jumlah_kali(a, b, c);
End.
PROGRAM Luas_dan_Volume_Bola;
PROCEDURE Hitung_luas_dan_Volume;
CONST
pi = 3.14
VAR
r : Integer;
Luas : real;
Isi : Real;
PROCEDURE Tanya_Jari_Jari;
BEGIN
Write (‘Tuliskan Jari-jari Bola : ‘);
Readln(r);
END;
PROCEDURE Hitung_luas;
BEGIN
Luas := 4 * pi * r * r
END;
PROCEDURE Hitung_Volume;
BEGIN
Isi := 4/3 * pi * r * r * r
END;
BEGIN
Hitung_Luas_dan_Volume;
END.
Pertanyaan :
a. Ketikkan dan jalankan program di atas !
b. Jelaskan aliran kerja program di atas !
c. Sebutkan semua variable dan konstanta yang digunakan beserta
ruang lingkupnya !
d. Dapatkah prosedur Tanya_jari_jari dipanggil dari blok program
utama ?
PROCEDURE Hitung_luas_dan_Volume;
CONST
pi = 3.14;
VAR
R : Integer;
BEGIN
Write (‘Tuliskan Jari-jari Bola : ‘);
Readln (r);
Luas := 4 * pi * r * r;
Isi := 4/3 * pi * r * r * r;
Writeln (‘Luas Bola = ‘, luas);
Writeln (‘Volume Bola = ‘, Isi);
END;
BEGIN
Hitung_luas_dan_Volume;
END.
Pertanyaan
a. Ketikkan dan jalankan program di atas !
b. Apakah perbedaan yang antara program di atas dengan program
pada soal 1.
BEGIN
Luas := 4 * pi * r * r;
Isi := 4/3 * pi * r * r;
Writeln (‘ Luas Bola = ‘, Luas);
Writeln (‘ Volume Bola = ‘, Isi);
END;
BEGIN
Write (‘Tuliskan Jari-Jari Bola : ‘);
Readln (Jari);
Hitung_luas_dan_volume(jari);
END.
Soal
a. Ketikkan dan jalankan program di atas !
b. Jelaskan aliran kerja program di atas !
PROGRAM Memasukkan_Angka;
VAR
Angka : Integer;
PROCEDURE Input;
BEGIN
Write (‘Ketikkan sembarang angka positif : ‘);
Readln (Angka);
IF (Angka < 0) Then Input;
END;
BEGIN
Input;
Writeln (‘Anda mengetikkan angka dengan benar’);
Writeln (‘Angka yang anda ketikkan = ‘, angka);
END.
Soal
a. Ketikkan dan jalankan program di atas !
b. Jelaskan aliran kerja program di atas !
Program Menghitung_faktorial;
Var
Bil : Integer;
Soal
a. Ketikkan dan jalankan program di atas.
b. Jelaskan aliran kerja program.
c. Sebutkan semua variable dan parameter yang digunakan beserta
tipenya.
R3
I1
I3
v R1
10. Tiga buah gaya F1, F2, dan F3 bekerja bersama-sama pada
sebuah benda. Buatlah program untuk menanyakan besar dan sudut
kerja masing-masing gaya lalu menghitung gaya resultan dari ketiga
gaya tersebut.
Pengertian Fungsi
Seperti halnya prosedur, fungsi adalah modul program, yaitu blok
program yang ditulis menurut aturan tertentu, dan digunakan untuk
membantu bagian utama program.
Pada bab sebelumnya kalian telah diperkenalkan bahwa pada Pascal
memilik beberapa FUNGSI STANDARD, seperti : Abs, Sqr, Exp, Ln dan
lain-lain. Fungsi-fungsi tersebut dikatakan standard karena memang
sudah dibuat dan tersimpan di dalam Compiler Turbo Pascal. Pada saat
diperlukan, anda tinggal memanggil saja.
Selain menyedian fungsi-fungsi standard, Turbo Pascal memberi fasilitas
kepada anda untuk menciptakan fungsi sendiri, fungsi-fungsi yang anda
ciptakan tersebut FUNGSI BUATAN (User Defined Function). Untuk
selanjutnya, yang dimaksud dengan fungsi dalam buku ini adalah fungsi
buatan, kecuali apabila disebutkan sebelumnya.
Pada dasarnya, cara menciptakan suatu fungsi sama dengan cara
membuat prosedur. Struktur keduanya sama. Perbedaan antara
prosedur dengan fungsi buatan hanya terletak pada system pertukaran
data serta tata cara pemberi namanya saja. Seperti halnya fungsi
standard, fungsi buatan dapat menerima beberapa data, tetapi hanya
dapat menghasilkan satu keluaran saja.
Fungsi buatan diletakkan sesudah bagian deklarasi (konstanta, type
variable) tetapi sebelum blok program utama. Anda dapat
mendeklarasikan fungsi pada daerah yang sama dengan deklarasi
prosedur.
Fungsi buatan yang sudah diciptakan dapat dipanggil pada saat anda
berada di blok program utama, dengan cara menuliskan nama fungsi
tersebut, diikuti dengan argument-argumen yang akan dimasukkan.
Pada saat fungsi buatan dipanggil, perjalanan program akan meloncat
ke awal fungsi yang dimaksud. Data-data yang ada di dalam parameter
Program Contoh_FUngsi
VAR
a, b, c : Integer;
p, q : Real;
END;
BEGIN
Writeln (‘Masukkan tiga bilangan a, b, c : ‘);
Readln (a, b, c);
p := Kuadrat (a);
Bagian
writeln (‘ a kuadrat = ‘, p); Utama
writeln (‘ b kuadrat = ‘, Kuadrat (b)); Program
writeln (‘b kuadrat = ‘, Sqr (b));
q := kuadrat (a + b + c);
writeln (q);
END.
Deklarasi Fungsi
Pembuatan suatu fungsi mirip dengan pembuatan prosedur. Berikut ini
beberapa hal penting yang harus diperhatikan pada saat menciptakan
fungsi buatan sendiri.
(a) Sama seperti prosedur, fungsi harus diberi judul. Judul suatu
fungsi diawali oleh kata Function dan diikuti nama fungsi yang akan
dibuat, serta jenis data yang akan dihasilkan oleh fungsi tersebut.
Nama suatu fungsi harus diawali huruf, tidak mengandung spasi, dan
tidak lebih dari 63 karakter. Selain itu, nama suatu fungsi harus sama
dengan nama variable yang akan digunakan untuk menyimpan
proses.
Contoh 8-2
Menulis nama fungsi,
FUNCTION KUADRAT (zz : Integer) : Real;
FUNCTION VOLUME (p, l, t : Integer) : Integer;
Setelah menuliskan nama fungsi, anda harus menyebutkan semua
parameter yang akan digunakan oleh fungsi tersebut beserta tipenya
(di dalam kurung), fungsi buatan harus memiliki parameter (berbeda
dengan prosedur, yang bisa bekerja tanpa memakai parameter).
Parameter di dalam fungsi buatan dapat disamakan dengan
argument pada fungsi standard. Parameter akan diisi dengan data-
data mentah yang akan dioleh oleh fungsi yang bersangkutan.
Setelah semua parameter disebutkan, terdapat dua titik yang
dilanjutkan dengan jenis data yanga kan dihasilkan oleh fungsi
tersebut. (Ingat : Fungsi bias menerima beberapa argument, tetapi
hanya bisa mengeluarkan sebuah fungsi saja).
Fungsi Berganda
Seperti halnya prosedur, suatu fungsi dapat kalian panggil selagi
sedang berada dalam fungsi yang lain, tentu saja, fungsi yang dipanggil
tersebut harus sudah, dibuat dahulu sebelumnya.
PROGRAM contoh_fungsi_berganda;
VAR
a, b, c : Integer;
FUNCTION Jumlah (x, y, z : Integer) : Integer;
Fungsi
BEGIN jumlah
Jumlah := x + y + z;
END;
Contoh 8-7 :
Fungsi jumlah pada contoh 8.6 dapat diletakkan di dalam fungsi
ratarata.
PROGRAM contoh_fungsi_berganda;
VAR
a, b, c : Integer;
FUNCTION ratarata (u, v, w : Integer) : real;
VAR Blok
Sum : Integer; Ratarata
FUNCTION jumlah (x, y, z : Integer) : Integer;
Fungsi
BEGIN Jumlah
Jumlah := x + y + z;
END;
BEGIN
Sum := jumlah (u, v, w);
Ratarata := sum/3;
END;
BEGIN
Write (‘tuliskan tiga bilangan a, b, c : ‘); Bagian
Readln (a, b, c); Utama
Program
Writeln (‘Rata-ratanya = ‘, Ratarata(a, b, c);
END.
BEGIN
Writeln (‘Tuliskan Nilai1, Nilai2 : ‘); Bagian
Readln (a, b); Program
utama
Kelulusan (a, b);
END.
Fungsi rata-rata dan fungsi lulus dipanggil oleh prosedur kelulusan. Agar
fungsi rata-rata dan fungsi lulus dapat dipanggil dari prosedur
kelulusan, maka keduanya harus diletakkan sebelum prosedur
kelulusan.
Variable a dan b adalah variable global, sedang nilaiakhir dan Ok adalah
variable local yang hanya dikenali oleh blok prosedur kelulusan.
Contoh 8-9
Program berikut menunjukkan bahwa suatu fungsi dapat diletakkan di
dalam prosedur.
PROGRAM menghitung_pajak;
Var
Gaji : Real;
PROCEDURE HitungPajak (a : real);
VAR
Persen, pajak : real;
BEGIN
Persen := Persentase (a);
Pajak := a * persen;
Writeln (‘Besarnya gaji := Rp. ‘, a);
Writeln (‘Besarnya Pajak := Rp. ‘, pajak);
END;
BEGIN
Write (‘Tuliskan gaji anda : ‘);
Readln (Gaji);
HitungPajak (gaji);
END.
Gaji adalah variable global, sedang persen dan pajak adalah variable
local yang hanya dikenali oleh blok prosedur hitungpajak. Fungsi
persentase dapat mengenali variable persen dan pajak karena fungsi
persentase berada di dalam blok prosedur hitungpajak.
VAR
Gaji : real;
Soal
1. Perhatikan beberapa judul fungsi di bawah ini, Tentukan manakah
judul fungsi yang benar !
a) FUNCTION Maksi;
b) FUNCTION Isi (A: B : Integer) : Integer;
c) FUNCTION Isi (A : Bolean) : Char;
d) FUNCTION Maksimum(A, B : Real :C) : Integer;
e) FUNCTION ab cd (A:Integer) : Char;
f) FUNCTION zkali Y (Z real , Y Real) : Char;
g) FUNCTION Pendapatan(Gaji : Real; Kode : String[B]) :
String[20];
2. Tuliskan judul fungsi untuk keperluan berikut ini :
a) Fungsi riil bernama AbagiB dengan dua buah parameter riil a
dan b.
b) Fungsi integer bernama Terkecil dengan tiga buah parameter
integer A, B dan C.
c) Fungsi Riil bernama Pajak dengan parameter KodeWilayah
(Integer), Gaji (riil), dan status (Character).
3. Buatlah sebuah fungsi untuk mencari bilangan terbesar dari tiga
bilangan integer a, b dan c.
4. Buatlah sebuah fungsi Boolean dengan sebuah parameter integer.
Fungsi tersebut akan menghasilkan nilai TRUE apabila parameternya
bilangan GANJIL.
5. Buatlah sebuah fungsi untuk menghitung luas permukaan bola
dengan rumus : L = 4 pi r2
6. Buatlah sebuah fungsi riil untuk menghitung rata-rata tiga buah
bilangan integer x, y dan z.
Function Fakto(n:byte):longint;
Begin
If n=0 then
Fakto:=0
Else
Fakto:=n*Fakto(n-1);
End;
Bila function di atas dipanggil dengan statemen y:=fakto(5); maka y
bernilai :
a. 0
b. 5
c. 120
d. 60
e. Salah semua
Function Abc(a,b:byte):longint;
Begin
If b=0 then Abc:=1
Else Abc:=a*Abc(a, b-1);
Type kal=string[20];
Procedure pgr(x:kal,n:byte);
Begin
If n>0 then
Procedure abc(A,B,C,D,E,F:byte);
Begin
C:=A + B;
D:=A - B;
E:=A*B;
F:A div B;
End;
Bila procedure abc dipanggil dengan abc(10,3,x,y,z,w) maka x,y,z
dan w masing-masing berharga:
a. 13, 7, 30, 3
b. 0, 0, 0, 0
c. 13, 7, 30, 3, 33
d. 1, 1, 1, 1
e. Salah semua
Procedure tulis(kata:string[80]);
Var i:byte;
Begin