A. Pengertian
Sebuah program yang baik adalah program yang membagi permasalahan utama
menjadi bagian-bagian kecil dimana setiap bagian kecil ditangani oleh sebuah subprogram,
cara ini disebut dengan pemrograman terbagi/terpecah (modular programming). Cara ini
termasuk pemrograman terstruktur dan sangat didukung
oleh bahasa Pascal. Untuk itu, Pascal telah menyediakan dua jenis subprogram, yaitu
procedure dan function (prosedur dan fungsi). Subprogram adalah bagian dari program
yang dirancang untuk melaksanakan suatu tugas tertentu. Idenya adalah konsep tentang
modularitas. Dengan cara ini, program akan lebih mudah dimengerti, dan jika ada
kesalahan di dalam proses pengolahan data akan lebih mudah untuk melokalisirnya.
Secara garis besar, konstruksi keduanya mirip dengan program. Prosedur dan fungsi
biasanya dikatakan sebagai ’program kecil’. Keduanya bisa memiliki bagian deklarasi,
bagian badan, bahkan juga dapat memiliki subprogram (prosedur atau fungsi) yang lain.
Aturan umum yang dapat digunakan untuk menentukan perlunya dibuat suatu prosedur
atau fungsi adalah tingkat kerumitan masalah yang akan diselesaikan. Untuk permasalah
yang cukup rumit, solusinya dibagi menjadi subsolusi-subsolusi yang lebih kecil. Masing-
masing subsolusi diwujudkan dalam bentuk prosedur atau fungsi. Contoh; masalah
pengelolaan data karyawan dapat dibagi menjadi bagian pemasukan data, pengubahan data,
penampilan data, dan penghapusan data. Kemudian masing-masing bagian tersebut
diwujudkan dalam sebuah procedure atau function. Setiap bagian yang disebut module
melakukan tugas tertentu secara cepat dan tepat, namun tetap tergantung kepada kejelian si
programmer. Subprogram biasanya dibuat apabila ada perhitungan atau sering dieksekusi
dalam sebuah program. Contoh bagain yang dapat dibuat menjadi subprogram antara
lain :
• Menampilkan menu pilihan
• Menghitung nilai rata-rata
• Mensortir data
B. Prosedur
Suatu ide penting yang ditekankan oleh Pascal dalam pemograman adalah apabila
konsep rutin, secara dasar merupakan sekumpulan perintah dengan nama tertentu yang
dapat diaktifkan banyak kali, maka kita dapat menggunakanya dengan memanggil nama
mereka. Cara ini dapat menghindari pengulangan penulisan perintah yang sama berkali-
kali dan pemakaian versi kode dirubah-rubah dalam sebuah program. Pemakaian versi
yang berubah-rubah dalam sebuah program akan berdampak kepada seluruh aplikasi yang
dibuat. Dengan demikan, dari sudut pandang ini berpikir secara rutinitas mekanisme
merupakan dasar dari code encapsulation.
Prosedur (procedure) adalah bentuk subprogram yang semata-mata bertugas
mengerjakan suatu aktivitas. Aktivitas tersebut dapat dikerjakan secara berulang dengan
apabila aktivitas tersebut akan dilakukan, bagian program yang membutuhkannya cukup
memanggil nama prosedur tersebut bersama parameter yang menyertai apabila ada.
Berikut ini akan diuraikan cara pembuatan prosedur dan cara menggunakan atau cara
memanggilnya.
1. Prosedur Sederhana
Prosedur (module) sederhana minimal terdiri atas beberapa pernyataan (statements)
yang dikelompokkan yang dimulai dengan menggunkan kata kunci Begin dan diakhir
dengan kata End; (end dengan memakai tanda titik koma). Setiap procedure mempunyai
nama yang khusus sesuai dengan masalah yang diselesaikan. Sintaks dalam
mendeklarasikan prosedur adalah seperti terlibat pada Gambar 29 berikut:
Procedure Karya_Ilmiah;;
Var Konsep, Fakta
Procedure Karya_Ilmiah;;
Var Konsep, Fakta
Procedure Karya;
Var Iman, Taqwa
Procedure Ilmiah;
Var Jujur, Disipilin
c. Penggunaan Forward
Forward pada Pascal digunakan untuk mendeklarasikan dimuka judul prosedur
secara terpisah dari bloknya. Judul prosedur yang berisi parameter terpisah ini
merupakan judul yang semestinya dan di deklarasikan dengan menambahkan kata
cadangan “ Forward ”. Blok prosedur ini letaknya terpisah dari judulnya, juga
diawali dengan judul prosedur, tetapi hanya mencantumkan judul atau nama
prosedurnya saja, tanpa mencantumkan parameter formalnya. Variabel pada suatu
subprogram dapat diakses oleh subprogram lain apabila sudah didefinisikan terlebih
dahulu namun kita sulit menentukan mana yang lebih dahulu ada bila kita memiliki
dua atau lebih subprogram. Untuk mengatasi masalah chicken-and-the-egg, bila kita
memiliki dua/lebih subprogram masing-masing bisa memanggil yang lain dengan
referensi forward. Hal ini berlaku juga nanti untuk subprogram Function (fungsi).
Program Contoh_Forward;
Var A,B,C : Real;
Procedure Karya_Ilmiah (Fakta: Real);
Forward;
4. Prosedur Standar
a. Prosedur Standar Exit
Prosedur standar Exit digunakan untuk keluar dari suatu blok pernyataam. Bila
diletakkan pada program bagian, prosedur standar exit akan menyebabkan proses
di program bagian berhenti dan proses kembali ke blok program yang
memanggilnya. Bila berada di program utama, menyebabkan proses program
berhenti.
b. Prosedur standar Halt
Prosedur standar halt digunakan untuk menghentikan proses program baik di
subprogram maupun program utama.
c. Prosedur standar Move
Prosedur standar Move digunakan untuk menyalinkan suatu blok sebanyak count
byte memori dari blok, dimulai byte pertama source dan disalinkan ke byte
pertama dan demikianlah selanjutnya. Bentuk umum dari prosedur ini adalah
seperti berikut:
Move ( var source, dest; count : word )
Contoh program :
Var
Sumber, Tujuan : string [5] ;
Sejumlah : word ;
Begin
Sumber : = ‘ABCDE’ ;
Tujuan : = ‘FGHIJ’ ;
Sejumlah : = 4 ;
Move (Sumber, Tujuan, Sejumlah ) ;
Writeln (Sumber : 7, Tujuan : 7 ) ;
End.
Output program di atas adalah sebagai berikut:
ABCDE ABCIJ
d. Prosedur Standar FillChar
Prosedur FillChar digunakan untuk mengisi sejumlah byte nilai ke dalam suatu
variabel, lebih memahaminya perhatikan sintaks berikut:
FillChar ( x ; count : word ; ch ),
dimana X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai
tipe ordinal ch sebanyak count byte.
C. Function
1. Pengertian
Sebagai subprogram, kegunaan fungsi mirip dengan prosedur. Fungsi diaktifkan
juga dengan memanggil namanya. Perbedaan utamanya adalah bahwa selain
mengerjakan suatu aktivitas tertentu, fungsi akan mengembalikan sutu nilai hasil
pemrosesan yang dilakukannya kepada bagian pemanggil (progam pemanggil).
Function, ketika dieksekusi menghasilkan suatu nilai. Function (fungsi) juga
memakai data dan mempunyai kemampuan untuk menghasilkan nilai pada procedure
atau program yang memanggilnya.
Sebagai mana halnya blok prosedur, blok fungsi harus dideklarasikan dengan
tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, seperti abs, pred, sqrt, sqr, succ dan
sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function.
Sedangkan fungsi yang akan bicarakan disini adalah fungsi yang kita buat sendiri.
Akibat fungsi akan mengembalikan suatu nilai, maka nilai kembalian ini harus
diperlakukan sebagaimana mestinya.
Berbeda dengan prosedur, fungsi merupakan modul program yang
menghasilkan suatu kuantitas. Hal ini dapat dilihat dari bentuk header-nya yang
menyebutkan jenis data dari kuantitas yang dihasilkan. Fungsi digunakan untuk
melakukan operasi matematika seperti perhitungan faktorial. Dalam membuat fungsi
harus memperhatikan hal-hal berikut ini:
a. dimulai dengan kata kunci function
b. struktur fungsi sama dengan sebuah procedure
c. didalam fungsi, suatu nilai dihasilkan dengan nama function
d. suatu function dipakai pada sisi sebelah kanan pada suatu ekspresi
e. fungsi hanya menghasilkan tipe data sederhana
Pengembalian nilai pada fungsi yang umum dilakukan adalah menampungnya
dalam sebuah variabel dengan tipe yang sama dengan tipe data nilai kembalian. Sintaks
untuk mendeklarasikan fungsi adalah sebagai berikut:
Function Identifier(daftar-parameter: tipe data) : type_data;
Contoh :
Function Faktorial(Var Fak,Hasil : Integer):Integer;
Function Pangkat(X,Y : Real):Real;
Blok fungsi diawali dengan kata cadangan Begin dan diakhiri dengan kata
cadangan End dan titik koma. Contoh di atas memperlihatkan bahwa secara blok fungsi
hampir sama dengan blok prosedur, hanya saja fungsi harus dideklarasikan dengan
tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Bentuk diagram alir
perumusan sintaks penggunaan function adalah seperti Gambar 34 berikut:
Contoh lain:
Program Contoh_Fungsi;
Uses crt;
var
angka, jawaban : integer;
Function Kubik( x : integer ) : integer;
Begin
Kubik := x * x * x
End;
BEGIN
writeln('Masukkan angka.'); Readln(angka);
jawaban := Kubik (angka );
writeln('Hasil pangkat tiga dari ',angka,' adalah ',jawaban);
END.
Contoh lain adalah fungsi yang digunakan untuk menghitung faktorial seperti
program berikut ini:
Program MenghitungFaktorial;
Uses WinCrt;
Var
x : byte;
Function faktorial (n:byte):integer;
Begin
if n<2 then faktorial:=1
Else Faktorial:=n*faktorial(n-1);
end;
BEGIN
writeln('Masukkan Angka : '); readln(x);
writeln(x,'! adalah ',faktorial(x));
Readln;
END.
2. Perbedaan fungsi dengan prosedur
a. Pada fungsi, nilai yang dikirimkan balik pengirimnya terdapat pada nama
fungsinya (kalau pada prosedur pada parameter yang dikirimkan secara acuan).
Pada contoh, nama fungsi tersebut adalah Hitung dan nilai yang dikirim balik
berada pada nama fungsi tersebut, sehingga nama fungsi ini harus digunakan
untuk menampung hasil yang akan dikirimkan dari fungsi, sebagai berikut :
Hitung := A + B;
Nama fungsi yang berisi nilai yang akan dikirimkan
b. Fungsi dapat langsung digunakan untuk dicetak hasilnya, karena nilai balik
berada di nama fungsi tersebut, untuk mudahnya perhatikan contoh berikut :
Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y));
Nama fungsi yang langsung
digunakan untuk ditampilkan hasilnya.
Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel
yang lainnya, sebagaimana terlihat pada contoh berikut :
Hasil := Hitung(X,Y);
Writeln(X,’ + ‘,Y, ‘ + ‘,Hasil);
Sedang pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung.
Pada prosedur yang dapat digunakan langsung adalah parameter yang mengandung
nilai balik.
D. Parameter
Parameter adalah sarana untuk berkomunikasi antara bagian pemanggil dengan
prosedur atau fungsi yang dipanggilnya. Parameter digunakan bagian pemanggil untuk
memberikan data pendukung aktivitas prosedur/fungsi, atau menerima kembali data
hasil pemrosesan oleh prosedur/fungsi. Parameter yang digunakan dalam
mendefinisikan prosedur atau fungsi disebut parameter formal, dan parameter yang
digunakan untuk memanggil prosedur/fungsi disebut parameter aktual. Keduanya bisa
sama, bisa juga berbeda.
Ada dua jenis parameter formal, yaitu parameter nilai dan parameter variabel.
Parameter nilai digunakan jika ia hanya diharapkan membawa data pendukung dari
bagian pemanggil untuk diberikan kepada prosedur/fungsi. Isi dari parameter nilai tidak
akan berubah, meskipun di dalam prosedur/fungsi. Sebaliknya, parameter selain
dimaksudkan untuk membawa data ke prosedur/fungsi, parameter variabel diharapkan
juga untuk membawa data hasil pemrosesan kembali ke bagian pemanggil.
Konsekuensinya adalah isi parameter variabel dapat berubah selama terjadi pemrosesan
di dalam prosedur/fungsi. Perubahan ini akan diterima oleh bagian pemanggil.
Berdasarkan uraian di atas, dapat ditarik suatu kesimpulan, bahwa kita akan
menggunakan parameter nilai jika kita hanya ingin memberikan data kepada
prosedur/fungsi tanpa perlu mengubah isinya. Kita akan menggunakan parameter
variabel jika kita berharap isi parameter tersebut berubah sesuai hasil pemrosesan yang
dilakukan oleh prosedur/fungsi.
Deklarasi pengenal tipe data, variabel, konstanta, prosedur, maupun fungsi
memiliki ruang lingkup tertentu. Secara umum, aturannya adalah segala sesuatu hanya
akan dikenal di mana ia dideklarasikan. Jika sebuah pengenal dideklarasikan dilevel
program, maka semua bagian program akan mengenalnya. Jika sebuah pengenal
dideklarasikan disebuah prosedur atau fungsi, maka ia hanya akan dikenal di prosedur
atau fungsi tersebut. Konsep di atas sering dinyatakan juga dengan lokalitas dan
globalitas pengenal. Pengenal dengan ruang lingkup meliputi seluruh program disebut
pengenal global, sementara yang ruang lingkupnya lebih kecil (sebatas prosedur atau
fungsi) disebut pengenal lokal. Pemrograman yang baik adalah pemrograman yang
tidak menggunakan banyak pengenal, khususnya variabel, yang bersifat global. Jika ada
nama pengenal global dan pengenal lokal yang sama, maka yang digunakan adalah
pengenal lokal. Ada beberapa aturan lain untuk default parameter, seperti berikut:
Parameter dengan nilai default haruslah diletakkan pada akhir daftar parameter.
Nilai default haruslah berupa konstanta. Hal ini terlihat membatasi tipe yang kita
pakai dengan default parameter. Misalnya, suatu array dinamis atau suatu
interface type tidak dapat mempunyai default parameter selain nol, record tidak
dapat digunakan sama sekali.
Default parameter harus dilewatkan secara nilai (passed by value) atau sebagai
konstanta. Suatu parameter reference (variabel) tidak dapat mempunyai nilai
default.
1. Parameter Nilai (pass by value)
Pada contoh Program Parameter_Nilai, ketika variabel disampaikan ke prosedur,
prosedur bekerja dengan copy dari variabel asli. Nilai dari variabel asli yang
disampaikan ke prosedur tidak diubah. Prosedur hanya menggantikan variabel asli
dengan variabel yang ada di prosedur, tetapi tidak menggantikan nilai dari variabel
asli. Ketika prosedur bekerja dengan menyalin dari variabel, maka parameter ini
dikenal dengan parameter nilai (pass by value). Perhatikan contoh berikut:
Program Parameter_Nilai;
Uses crt;
var x : byte;
procedure foo(a : byte);
begin
writeln(a); {15}
a:=10;
writeln(a); {10}
end;
BEGIN
x:=15;
writeln(x); {15}
foo(x);
writeln(x); {tetap 10}
END.
Bila parameter dikirimkan secara nilai nilai, parameter formal di prosedur akan
berisi nilai yang dikirmkan yang kemudian bersifat lokal di prosedur. Bila nilai
parameter formal di prosedur berubah, tidak akan mempengaruhi nilai parameter nyata
(nilai parameter nyata tetap, tidak berubah). Pengiriman secara nilai ini merupakan
pengiriman searah, yaitu dari parameter nyata ke parameter formal, yang tidak
dikirimkan balik dari parameter formal ke parameter nyata.
Parameter – parameter yang digunakan dengan pengiriman secara nilai ini disebut
dengan parameter nilai (value parameter). Untuk memudahkan memahaminya
pelajarilah contoh berikut:
Procedure Hitung(A, B : integer ) ;
Var
X, Y : integer ;
C : integer ;
Begin
C:=A+B;
Writeln (‘Nilai C =’, C ) ;
End ;
Begin
Write ( ‘Nilai X =’ ) ; readln ( X ) ;
Write ( ‘Nilai Y =’ ) ; readln ( Y ) ;
Hitung ( X, Y ) ;
End.
Output program di atas adalah :
Nilai X = 2
Nilai Y = 3
Nilai C = 5
Penjelasan program :
prosedur dimulai dengan deklarasi prosedur dengan judul prosedur hitung.
Variable A dan B adalah parameter formal dan integer adalah tipe parameternya.
Variable local yang hanya dipergunakan di prosedur dan tidak termasuk
parameter formal (parameter nilai), harus didefinisikan sendiri, yaitu : variable C
Hubungan antara parameter formal di prosedur dengan parameter nyata di modul
utama adalah : nilai parameter nyata X dan Y dimodul utama dikirimkan ke
parameter formal A dan B di prosedur. Dengan demikian nilai parameter A dan B
diprosedur akan berisi nilai yang sama dengan parameter X dan Y di modul
utama.
2. Parameter Variabel (pass by reference)
Prosedur bisa juga dipakai untuk mengubah nilai dari variabel asli yang dipanggil
oleh prosedur. Untuk menggambarkannya, kita bisa lihat pada contoh program
modifikasi program sebelumnya. Prosedur ini menerima dua nilai integer dan
menggantikan nilai aslinya. Untuk membuat prosedur menggunakan parameter
variabel (pass by reference) dengan menggunakan kata kunci var.
Program Parameter_Variabel;
Uses crt;
var x : byte;
procedure foo(var a : byte);
Begin
writeln(a); {15}
a:=10;
writeln(a); {10}
End;
BEGIN
x:=15;
writeln(x); {15}
foo(x);
writeln(x); {berubah 15}
END.
BEGIN
Write(‘Nilai Pertama ?’);Readln(Nilai1);
Write(‘Nilai Kedua ?’); Readln(Nilai2);
Writeln(‘Nilai Terbesar adalah’ ,Terbesar(Nilai1,Nilai2):9:3);
END.
Output dari program di atas adalah :
Nilai Pertama ? 12,356
Nilai Kedua ? 55.182
Nilai Terbesar adalah 55,182
Sedang penulisan judul fungsi yang menggunakan parameter dengan pengiriman
secara acuan adalah dengan menambahkan katan cadangan Var sebagai berikut :
Function Hitung(Var A,B : Integer):Integer;
Pengiriman parameter dengan secara acuan akan mengakibatkan perubahan nilai
parameter di fungsi juga merubah nilai parameter di modul yang mengirimkannya.
Program Contoh3:
Function Hitung(Var A,B,C : Integer):Integer; Output :
Begin
Hitung :=A+B; Nilai X ? 2
C :=A*B; Nilai Y ? 3
End.
2+3=5
Var 2*3=6
X,Y,Z : Integer;
Begin
Write(‘Nilai X ?’);
Readln(X);
Write(‘Nilai Y?’);
Readln(Y);
Writeln;
Writeln(X,’+’,Y, ‘=’,Hitung(X,Y,Z);
Writeln(X,’*’,Y, ‘=’,Z);
End.
Pascal tidak menyediakan Fungsi untuk perpangkatan tinggi, yang ada hanyalah SQR,
yaitu untuk pemangkatan kuadrat. Bila kita menghitung bilangan berpangkat berorde
lebih tinggi, maka kita harus dibuat program tersendiri, seperti program berikut:
Program Contoh4;
Function PangkatI(X:Real; Y:Integer):Real;
Var Pangkat :=1;
For I := 1 to Y do
Pangkat := Pangkat * X;
PangkatI := Pangkat;
End;
Var
A: Real;
B : Integer;
Begin
Write(‘Nilai akan dipangkatkan ?’); Readln(A);
Write(‘Dipangkatkan dengan ?’); Readln(B);
Writeln(A:9:3, ‘Pangkat’ ,B, ‘adalah’,PangkatI(A,B):9:3);
End.
Output dari program di atas adalah sebagai berikut:
Nilai akan dipangkatkan ? 1.5
Dipangkatkan dengan ? 3
1.500 pangkat 3 adalah 3.375
Dari program di atas terlihat bahwa notasi Fakto(N-1) yang digunakan untuk
memanggil program sebelumnya dinamakan sebagai pemanggil atau rekursi.
Program faktorial;
Uses wincrt;
Var x : integer;
Function factorial (n:integer):integer;
Begin
if n<2 then { ini adalah syarat penghentian operasi }
factorial:=1;
else
factorial:=n*factorial(n-1); { ini bagian rekursi}
End;
BEGIN
writeln('Masukkan nilai : '); readln(x);
writeln(x,'! adalah ',factorial(x));
END.
Penjelasan
Jika x= 5,maka Pemanggilan
Ke-1, n=5. Factorial:=5*factorial(4); => Perlu Pemanggilan Ke-2
Ke-2 , n=4. Factorial:=4*factorial(3); => Perlu Pemanggilan Ke-3
Ke-3 , n=3. Factorial:=3*factorial(2); => Perlu Pemanggilan Ke-4
Ke-4, n=2. Factorial:=2*factorial(1); => Perlu Pemanggilan Ke-5
Ke-5, n=1. Factorial:=1;
Ke-4 menjadi : Factorial:=2*1; (=2)
Ke-3 menjadi: Factorial:=3*2; (=6)
Ke-2 menjadi: Factorial:=4*6; (=24)
Ke-1 menjadi: Factorial:=5*24; (=120)
F. Fungsi Standar
Pascal menyediakan beberapa fungsi standar yang telah didefinisikan dan tidak
perlu dibuat kembali oleh pemakai yang sering digunakan untuk operasi-operasi
arithmatika diantaranya adalah :
1. Fungsi standar ABS
Bentuk Umum : ABS(X);
Fungsi ABS digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh
argumen X. Argumen X dapat berupa tipe real atau integer dan hasil dari fungsi ini
akan sama dengan tipe argumennya. Memutlakkan suatu nilai berarti nilai negatif
dipositifkan dan nilai positif tetap positif. Perhatikan contoh berikut :
Program Mutlak;
Var X : Real;
Begin
Write(‘Nilai yang akan dimutlakkan ?’);Readln(X);
Writeln(‘Nilai Mutlaknya =’,Abs(X):9:2);
End.
Output :
Nilai yang akan dimutlakkan ? –25.75
Nilai mutlaknya = 25.75
2. Fungsi standar EXP
Bentuk umum : EXP(x : Real) : Real;
Fungsi Exp digunukan untuk menghitung nilai pangkat dari bilangan e (bilangan
alam), yaitu sebesar ex. Argumen x dapat berbentuk tipe real atau integer dan hasil
dari fungsinya adalah real. Perhatikan contoh berikut ini.
Program Misal;
Var X : Real;
Begin
Write(‘Nilai yang akan dieksponentialkan ?’);Readln(X);
Writeln(‘Nilai Eksponentialnya = ‘,Exp(X):9:5);
End.
Output :
Nilai yang akan dieksponentialkan ? 7.5
Nilai Eksponentialnya = 1808.04241
3. Fungsi Standar LN
Bentuk Umum : Ln(x : Real):Real;
Digunakan untuk menghitung nilai algorithma alam (Natural Logarithm) dari nilai x.
Argumen x dapat berbentuk tipe Real atau Integer dan hasil dari Fungsinya adalah
Real.
Contoh :
Program Misal3;
Var
X : Real;
Begin
Write(‘Nilai yang akan di Ln ?’);Readln(x);
Writeln(‘Nilai Ln = ‘,Ln(x):9:2);
End.
Output :
Nilai yang akan di Ln ? 100
Nilai Ln = 4.61
4. Fungsi Standar INT
Bentuk umum pemakaiannya adalah Int(x:Real) : Real;
Fungsi INT digunakan untuk menghasilkan nilai integer dari x. Hasil dari fungsi int
adalah tipe data real. Hasil dari fungsi adalah tipe data real dengan nilai yang
berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x. Perhatikanlah
contoh berikut ini :
Program Misal4;
Var X : Real;
Begin
Write(‘Nilai yang akan dibulatkan ?’); Readln(X);
Writeln(‘Nilai pembulatannya = ‘,Int(X):9:2);
End.
Output :
Nilai yang akan dibulatkan ? 9.99
Nilai pembulatannya = 9.00
Contoh lain:
Program hitung_huruf;
Uses wincrt;
Type
az ='a'..'z';
kalimat = array[az] of byte;
var
huruf : char; kata : string;
besar : az; pernyataan : kalimat;
i : byte;
begin
clrscr;
for besar :='a' to'z' do
pernyataan[besar] := 0;
write('tulis kalimat ');
readln(kata);
for i := 1 to length(kata) do
begin
huruf := kata[i];
if(huruf >='a') and (huruf <='z') then inc(pernyataan[huruf]);
end;
for besar :='a' to 'z' do
if pernyataan [besar] <> 0 then
writeln('jumlah huruf','':8,besar,'=':2,pernyataan[besar]);
repeat until keypressed;
End.
H. Soal Latihan 5
1. Buatlah 3 contoh sintaks deklarasi
procedure dan function serta cara memanggilnya
2. Sebutkan dan buat 3 contoh ruang lingkup
variabel
3. Buat program sederhana dalam bentuk
prosedur dan fungsi yang melewati harga dengan parameter nilai (acuan) dan
prosedur yang melewati harga dengan parameter variabel.
4. Pada sebuah laboratorium dalam
melaksanakan penelitian terdapat petunjuk penggunaan alat atau bahan dengan
berbagai satuan skala suhu yaitu Fahrenheit, Reamor dan Celsius. Konversi yang
harus dibuat adalah dari Fahrenheit ke Celsius, Fahrenheit ke Reamor, Celsius ke
Fahrenheit. Instruktur laboratorium meminta Saudara untuk membuat program
koversi skala penggukuran tersebut. Petunjuk gunakan program pembantu berupa
prosedur yang mengandung variabel global, variabel lokal, parameter acuan (nilai)
dan parameter variabel.
5. Saudara ditugaskan menghitung massa jenis
benda berbentuk bola dan kubus yang terbuat Besi dan Aluminium dengan ukuran
dan kerapatan jenis yang berbeda-beda. Agar perhitungan dapat dilakukan dengan
cepat dan akurat, instruktur memerintahkan Saudara agar membuat program dengan
ketentuan sebegai berikut:
a. untuk menghitung volume, gunakan program
pembantu Procedure
b. Input adalah sisi kubus atau jari-jari bola, massa
benda
c. Tampilan menu:
- Menu Jenis Benda:
1. Data Kubus
2. Data Bola
Selasai
Pilihan Anda !!!
- Menu Bahan Benda
a. Alumunium
b. Besi
c. Tembaga
Pilihan Bahan Anda !!!
d. Input data selesai setalah pada bagian input jenis
benda dituliskan kata “Selesai”.
Buatlah algoritma dan program dengan pascal untuk menyelesaikan
permasalahan di atas
6. Buatlah procedure untuk menampilkan pola
segi tiga dari karakter ’*’ dengan sisi tegak ada di bagian kanan. Contoh untuk n =
5, hasilnya berbentuk :
*
* *
* *
* * * * *
7. Ingin dibuat procedure untuk menampilkan
pola bilangan dalam segi tiga seperti contoh berikut (untuk n = 5). Bagaimana isi
procedurenya?
1
121
12321
1234321
123454321
8. Buatlah program untuk menghitung luas
persegi panjang, segitiga, dan lingkaran. Perhitungan masing-masing bangun
dilakukan oleh fungsi yang mengembalikan luas tiap bangun. Tiap fungsi memiliki
parameter berupa data yang diperlukan untuk menghitung luas : panjang dan lebar
(persegi panjang), alas dan tinggi (segitiga), dan diameter (lingkaran).
9. Buatlah function untuk menghitung luas
segiempat yang batasnya ditunjukkan oleh koordinat titik kiri-atas (x1,y1) dan
koordinat titik kanan-bawah (x2,y2). Cara memanggil function ini adalah
Luas(x1,y1,x2,y2). Sebagai contoh Luas(0,0,1,1) akan menghasilkan nilai 1
sedang Luas(10,10,60,30) akan menghasilkan 1000.
10. Diketahui sebuah konduktor berongga
berupa bola berjari-jari (R) bermuatan q dan pada jarak d dari pusat bola dan
mempunyai sebesar muatan Q. Buatlah algoritma dan program dalam satu paket
untuk menghitung:
a. Energi pada kulit bola bermuatan q
b. Medan listrik dan potensial untuk
- d>R
- d< R
- d=R
Gunakan program moduler procedure dan parameter nilai, parameter variabel,
Variabel global, variabel lokal untuk setiap kasus perhitungan (Baca Medan
Elektromagnetik, Karangan Waloejo Laksmanto, hal 37 – 49) untuk
mendapatkan persamaan yang akan digunakan.
11. Buat program mengandung procedure untuk
menghitung, sebuah kabel jalur kereta gantung sepanjang 500 m direntang
diantara 2 menara dgn 1 menara penunjang ditengah-tengahnya. Kecepatan kereta
gantung tersebut bergantung kepada posisinya pada menara. Ketika kereta berada
pada jarak kecil dari 25 m dari menara kecepatannya adalah :
2
vel =0,2 d m / dt dan dengan: d adalah jarak kereta ke menara terdekat
dan ketika kerata berada pada jarak >= 25 m dari menara kecepatannya adalah
2
vel=d +0 . 01 d m/ dt . Cetaklah tabel jarak dari menara I dan
kecepatan kereta yang bergerak dari menara I hingga ke III, setiap jarak 5 m.
Cetak juga nomor menara yang dilewati kereta.