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 da­hulu (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.

4.2.3.1 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

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

2 komentar:

Anonim mengatakan...

Perbedaan nya apa ya yang

Anonim mengatakan...

Perbedaan nya apa ya yang "program untuk menghitung luas dan keliling persegi panjang"