Pemrograman Modular ( Procedure dan Function )
Procedure
Untuk mempermudah mengembangkan program, aplikasi yang besar dapat dipecah menjadi segmen
kode yang lebih kecil atau disebut prosedur. Contohnya adalah penanganan event mouse seperti, mouse
over, klik, klik ganda dan klik mouse kanan. Masing-masing tugas ditampilkan pada prosedur yang
terpisah yang ditulis dan diuji secara terpisah satu dengan lainnya. Prosedur juga digunakan untuk
penerapan tugas yang diulang-ulang seperti perhitungan yang sering digunakan. Konsep Prosedur
(procedure) adalah serangkaian statemen yang digunakan untuk memecahkan sebuah masalah. Seperti
fungsi, prosedur juga mempunyai nama dan parameter.
Prosedur harus dideklarasikan terlebih dahulu sebelum dipanggil atau digunakan. Pascal juga
menyediakan beberapa prosedur built-in yang langsung digunakan, misalnya inc dan dec, yang masing-
masing digunakan untuk menambahkan dan 1 pada sebuah integer yang menjadi parameternya. Untuk
mempermudah mengembangkan program, aplikasi yang besar dapat dipecah menjadi segmen kode
yang lebih kecil atau disebut prosedur. Dengan kata lain prosedur merupakan suatu bagian yang
digunakan untuk mengenali subprogram di dalam suatu program.
Ada dua tipe prosedur yang akan dibahas dalam bagian ini yaitu subrutin dan fungsi. Subrutin dan fungsi
merupakan bagian dari kode yang akan mengerjakan tugas tertentu dan dapat dipanggil dari berbagai
bagian aplikasi untuk melakukan operasi yang sama, biasanya pada data yang berbeda. Perbedaan
keduanya kalau fungsi return value/mengembalikan nilai sedangkan subrutin tidak.
1. Subrutin
Subrutin adalah blok pernyataan untuk mengerjakan suatu tugas yang didefinisikan dengan baik. Blok
pernyataan diletakkan di antara pernyataan Sub...End Sub. Subrutin dapat dipanggil melalui namanya.
Contoh subrutin berikut akan menampilkan suatu pesan pada kotak pesan.
a. Sub Pesan()
b. MsgBox(“Belajar VB, siapa takut!”)
c. End Sub
Kebanyakan prosedur disertai dengan argumen. Subrutin TampilkanTgl() berikut akan menampilkan
tanggal sekarang pada kotak pesan. Jika anda ingin menampilkan tanggal lainnnya Anda dapat mem-
passing-kan (meneruskan) argumen dengan nilai yang berbeda:
a. Sub TampilkanTgl(ByVal TglLahir As Date)
b. MsgBox(TglLahir)
c. End Sub
TglLahir adalah variabel yang menangani tanggal yang akan ditampilkan dengan tipe Date. Kata kunci
ByVal artinya subrutin tidak dapat mengubah nilai dari variabel TglLahir. Untuk memanggil subrutin
TglLahir ketik kode berikut di dalam program anda: Call TampilkanTgl(Date) ‘Ditampilkan tanggal sistem
dalam kotak pesan. Untuk menampilkan tanggal lain, Anda dapat memasukkan nilainya dengan Call
TampilkanTgl(#12/23/1963#).
Aturan penulisan deklarasi prosedur adalah :
Procedure nama-prosedur (parameter input ; var parameter output);
Begin
{statemen-statemen implementasi prosedur (badan prosedur), hasil perhitungan yang dilakukan prosedur
(ika ada), disimpan pada parameter output}
End;
Pemanggilan Procedure :
Suatu procedure bukan merupakan program yang berdiri sendiri sehingga tidak dapat dieksekusi secara
langsung. Untuk itu suatu procedure memerlukan sebuah akses pada program utama / modul lain yang
befungsi sebagai pemanggil. Sedangkan cara pemanggilannya adalah dengan : menuliskan nama
procedurenya berikut parameternya (jika ada).
Contoh algoritma yang menggunakan procedure
Buatlah Program yang berisi procedure yang menambahkan nilai x dan y masing dengan
4, kemudian jumlahkan nlai x dan y
Contoh Output :
Program TugasAlgoritma;
{Program di Bawah ini Adalah Tugas Algoritma X Y + 4}
Uses
Wincrt;
Var
A,B,C:Real;
Procedure Input(X,Y:Real);
Begin
Writeln('Masukkan Nilai : ');
Write('X = ');Read(X);
Write('Y = ');Read(Y);
A:=X+4;
B:=Y+4;
Writeln;
Writeln('Nilai X dan Y diakhir Prosedur 4 : ');
Writeln('X = ',A:0:0);
Writeln('Y = ',B:0:0);
End;
Procedure Output(A,B:Real;Var C:Real);
Begin
C:=A+B;
Writeln;
Writeln('Hasil Masukan X + Y = ',C:0:0);
End;
Begin
Input(A,B);
Output(A,B,C);
End.
Function
Konsep fungsi (function) dalam Pascal hampir sama dengan konsep fungsi dalam matematika. sebuah
fungsi digunakan untuk menghitung sebuah nilai berdasar satu atau beberapa nilai masukan. Sebuah
fungsi tersebut harus dideklarasikan atau didefinisikan terlebih dahulu sebelum dipanggil atau digunakan.
Suatu fungsi adalah blok kode yang dapat dipanggil untuk mengerjakan suatu tugas tertentu dan
menghasilkan nilai kembalian..
Pascal juga menyediakn beberapa fungsi yang dapat langsung digunakan tanpa dibuat terlebih dahulu
(built-in function). Dengan kata lain fungsi merupakan suatu bagian dari program yang dimaksudkan
untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang dijalankan.
Fungsi mirip dengan subrutin, bedanya fungsi menghasilkan return value/mengembalikan nilai. Suatu
fungsi adalah blok kode yang dapat dipanggil untuk mengerjakan suatu tugas tertentu dan menghasilkan
nilai kembalian.
a. Passing Parameter
Pada VB 6 parameter dipassing- kan (diteruskan) ke fungsi. Default-nya adalah passing parameter
melalui referensi (ByRef). Ada dua metode passing parameter yaitu melalui nilai/value (ByVal) artinya
semua perubahan yang dibuat ke nilai parameter hanya efektif dalam fungsi yang memanggil. Nilai asli
sekarang dalam fungsi yang dipanggil tidak terpengaruh. Sedangkan pada passing parameter melalui
referensi (ByRef), jika parameter di dalam fungsi berubah, perubahan juga dicerminkan di luar fungsi.
b. Fungsi Built-in VB 6
Berikut adalah beberapa daftar fungsi built-in bawaan VB 6
1. Fungsi Konversi Type Data
Tabel 4.1 Fungsi untuk konversi antara type data ke type data lainnya
Nama Fungsi
Penjelasan
Cbool
Konversi argument ke tipe data Boolean
Cbyte
Konversi argument ke tipe data Byte
Ccur
Konversi argument ke tipe data Currency
Cdate
Konversi argument ke tipe data Tanggal
Cdbl
Konversi argument ke tipe data Double
Cdec
Konversi argument ke tipe data Decimal
Cint
Konversi argument ke tipe data Integer
CLng
Konversi argument ke tipe data Long
Csng
Konversi argument ke tipe data Single
Cstr
Konversi argument ke tipe data String
2. Fungsi Konversi String
Tabel 4.2 Fungsi untuk konversi dari dan ke tipe string
Nama Fungsi
Penjelasan
Cstr
Merubah argument ke tipe string
Str
Merubah argument numerik ke tipe string
Val
Merubah argument string ke tipe numerik
3. Fungsi ASCII
Tabel 4.3 Fungsi untuk konversi string dari dan ke nilai ASCII nya
Nama Fungsi
Penjelasan
Chr
Merubah dari ASCII ke String
Asc
Merubah argument string ke bentuk ASCII
4. Fungsi SubString String
Tabel 4.4 Fungsi untuk mengambil bagian dari string
Nama Fungsi
Penjelasan
Mid
Mengambil bagian string dari posisi ke i sebanyak n charakter
Left
Mengambil bagian string dari kiri sebanyak n karakter
Right
Mengambil bagian string dari kanan sebanyak n karakter
5. Fungsi Konversi Ke Huruf Besar dan Kecil
Tabel 4.5 Fungsi untuk konversi string ke huruf besar dan huruf kecil
Nama Fungsi
Penjelasan
Ucase
Merubah argument string menjadi huruf besar semua
Lcase
Merubah argument string menjadi huruf kecil semua
6. Fungsi Trimming dan pengaturan String
Tabel 4.6 Fungsi untuk menghilangkan spasi kosong di sekitar argument string
Nama Fungsi
Penjelasan
Ltrim
Menghilangkan spasi di depan argument string
Rtrim
Menghilangkan spasi di belakang argument string
Trim
Menghilangkan spasi di depan dan belakang argument string
7. Fungsi Aritmatika Waktu untuk perbandingan Waktu
Tabel 4.7 Fungsi untuk mengoperasikan waktu
Nama Fungsi
Penjelasan
DateAdd
Menghasilkan waktu baru setelah ditambahkan dengan nilai tertentu
DateDiff
Menghasilakan perbedaan antara dua waktu
DatePart
Mengambil bagian dari waktu
Aturan penulisan deklarasi fungsi adalah :
Function nama-fungsi (parameter) : tipe-hasil;
Begin
Nama-fungsi := nilai yang dikirimkan/hasil;
End;
Contoh algoritma yang menggunakan function
Buatlah program menghitung total gaji dengan menggunakan Function, dengan ketentuan sbb :
Total gaji seorang pegawai dipengaruhi oleh Gaji Pokok dan besarnya tunjangan anak
Total Gaji = Gaji Pokok + Tunjangan Anak
Gaji Pokok ditentukan dari kepangkatan/Golongan
Golongan Gaji Pokok
1 2.000.000
2 3.000.000
3 4.000.000
4 5.000.000
Besarnya tunjangan anak ditentukan dari banyaknya anak
N Anak Tunjangan
1 500.000
>= 2 1.000.000
Contoh output
Menghitung Total Gaji
USES
wincrt;
VAR
Golongan : Char;
N_Anak : integer;
Gaji_Pokok, Tunjangan_Anak, Total_Gaji : Longint;
FUNCTION Hitung_Gaji_Pokok(a : char):longint;
Begin
case a of
'1' : Hitung_Gaji_Pokok := 2000000;
'2' : Hitung_Gaji_Pokok := 3000000;
'3' : Hitung_Gaji_Pokok := 4000000;
'4' : Hitung_Gaji_Pokok := 5000000;
end;
End;
FUNCTION Hitung_Tunjangan(a : integer):longint;
Begin
If a = 1 then
Begin
Hitung_Tunjangan := 500000;
End
Else if a >= 2 then
Begin
Hitung_Tunjangan := 1000000;
End
Else
Begin
Hitung_Tunjangan := 0;
End;
End;
PROCEDURE Input;
Begin
write('Inputkan Golongan/Pangkat : ');
readln(Golongan);
write('Inputkan Jumlah Anak : ');
readln(N_Anak);
writeln;
End;
BEGIN
Input;
Writeln('Gaji Pokok = ', Hitung_Gaji_Pokok(Golongan));
Writeln('Tunjangan Anak = ', Hitung_Tunjangan(N_Anak));
Writeln('Total Gaji = ',Hitung_Gaji_Pokok(Golongan) + Hitung_Tunjangan(N_Anak));
END.
Perbedaan Fungsi dan Prosedur
1. Fungsi dapat mengembalikan suatu nila yang dapat digunakan dalam ekspresi, sedangkan prosedur
tidak memiliki nilai yang berhubungan dengan namanya.
2. Fungsi digunakan untuk membuat operasi-operasi yang tidak ada dalam fungsi utama, sedangkan
prosedur digunakan untuk menstrukturkan suatu program dan untuk untuk memperbaiki kejelasan da
keumumannya.
[Link] Aplikasi fungsi pada program pascal :
program fungsi_persegi_panjang;
uses crt;
function luas(p,l:integer):integer;
begin
luas:=p*l;
end;
function kel(p,l:integer):integer;
begin
kel:=2*(p+l);
end;
var
p,l:integer;
begin
clrscr;
writeln('program untuk menghitung luas dan keliling persegi panjang');
writeln;
write('masukan panjang : ');
readln(p);
writeln;
write('masukan lebar : ');
readln(l);
writeln;
write('luasnya : ',luas(p,l));
writeln;
write('kelilingnya : ',kel(p,l));
end.
Kode program 4.2 aplikasi fungsi pascal
[Link] Aplikasi prosedur dalam pascal
uses crt;
var
p,l,luas,kel:integer;
procedure hitung_luas;
begin
luas:=p*l;
writeln('luas : ',luas);
end;
procedure hitung_keliling;
begin
kel:=2*(p+l);
writeln('keliling : ',kel);
end;
begin
clrscr;
writeln('program untuk menghitung luas dan keliling persegi panjang');
writeln;
write('masukan panjang : ');
readln(p);
writeln;
write('masukan lebar : ');
readln(l);
writeln;
hitung_luas;
hitung_keliling;
end.