Anda di halaman 1dari 17

SUB PROGRAM

[pemrograman modulAr]
Pemrograman Modular
Pemrograman Modular
Suatu teknik untuk menulis program yang berukuran besar dengan membagi
program menjadi beberapa bagian kecil. Tiap bagian disebut module, yang
melakukan suatu tugas tertentu.

Contoh: Program untuk Mix Design Beton

Mix Design Beton

Inisialisasi Menu Proses Output

Input Grafik Laporan


Disain Modular
1. Permasalahan Besar → Potongan-potongan kecil yang mudah
diselesaikan.
2. Pendekatan secara Top-down design (dari atas ke bawah) →Penyelesaian
global diuraikan menjadi detail-detail kecil.
3. Desain harus:
 Mudah dibaca,
 Setiap modul mempunyai satu tugas,
 Setiap modul bersifat independen/bebas, dan
 Setiap modul cukup kecil dan mudah dipahami

Di dalam MS VB 6 modul bisa berupa form (.frm), file class module (.cls),
atau file module (.bas). Hanya form yang mempunyai tampilan grafis.
Procedure dan function
Event Procedure
Procedure yang berkaitan dengan suatu object yang akan dipanggil secara otomatis
pada saat terjadi “event” pada object tersebut.
Contoh event procedure:

Private Sub cmdTambah_Click()


Call Tambah(2,3)
End Sub

Procedure ini dipanggil saat object cmdTambah diklik

General Procedure
Dipergunakan untuk melakukan tugas yang berulang-ulang, terdiri atas:
- Sub Procedure, dan
- Function Procedure
SUB Procedure
Bentuk umum:
Private Sub NamaProcedure()
‘Blok Perintah di sini
End Sub

Dipanggil dengan: Call NamaProcedure atau NamaProcedure

Contoh:
Private Sub cmdTambah_Click()
Call Tambah(2,3) ‘atau Tambah(2,3) atau Tambah 2,3
End Sub

Sub Tambah (n1 as Single, n2 as Single)


sum = n1 + n2
Print sum
End Sub
Scope [jangkauan]
Procedure maupun function mempunyai scope lokal (hanya pada form terkait) maupun
global (seluruh program). Kita bisa menentukan scope dari sebuah procedure dengan
keyword Public (untuk global) atau Private (lokal).
Contoh scope lokal

Private Sub NamaProcedure()


‘Blok Perintah di sini
End Sub

Contoh scope global


Public Sub NamaProcedure()
‘Blok Perintah di sini
End Sub

Cara pemanggilan procedure global dengan: NamaForm.Namaprocedure


Contoh di atas berlaku juga untuk function
Parameter & Argumen
Parameter
 Variabel yang muncul di dalam kode sub procedure
 Merupakan tempat menaruh nilai yang disampaikan program ke Sub
procedure
Argumen
 Sesuatu yang muncul di dalam tanda kurung pada saat memanggil
procedure
Private Sub cmdAdd_Click()
Call Add(2, 3) ‘ angka 2 dan 3 disebut argumen
End Sub

Private Sub Add(n1 as Single, n2 as Single)


sum = n1 + n2 ‘ n1 dan n2 disebut parameter
Print sum
End Sub
Passing PARAMETER
 By Reference – variabel yang diproses procedure digantikan oleh variabel yang
ada di procedure. ByRef merupakan default untuk VB (bila pada parameter tidak
ditentukan dengan keyword ByVal atau ByRef)
 By Value – Variabel yang diproses oleh procedure hanya berubah nilainya saja

Contoh by reference atau


Private Sub Kuadrat(n1 as Single) Private Sub Kuadrat(ByRef n1 as Single)
NilaiKuadrat = n1^2 NilaiKuadrat = n1^2
Print NilaiKuadrat Print NilaiKuadrat
End Sub End Sub

Contoh by Value
Private Sub Kuadrat(ByVal n1 as Single)
NilaiKuadrat = n1^2
Print NilaiKuadrat
End Sub
Passing BY REFerence
Private Sub cmdTambah_Click()
Dim x As Single, y As Single, hasilku As Single
x = 3
y = 4

hasil.Print "Penjumlahan dari 3 dan 4 adalah ";


Call Tambah( x, y, hasilku)
hasil.Print hasilku Call by reference
hasil.Print "x="; x; " "; "y="; y
End Sub

Private Sub Tambah(n1 As Single, n2 As Single, ans As


Single)
ans = n1 * n2
n1 = 2 * n1
n2 = 3 * n2
End Sub
Passing BY value
Tidak mengubah nilai x dan y saat memanggil procedure
Private Sub Adder_Click()
Dim x As Integer, y As Integer, hyp As Single
x = 4
y = 5
Call addit(x, y, hyp)
output.Print "x= "; x; " y= "; y
output.Print "Hypotenuse= "; hyp
End Sub

Public Sub addit(ByVal p As Integer, ByVal q As Integer,


ByRef pyth As Single)
pyth = p * p + q * q
p = p + q
output.Print "p= "; p; " q= "; q
End Sub
By reference & By value
 By reference tidak meng-kopi data dari satu procedure ke procedure lainnya
( yang dikopi: variabel yang didalamnya terdapat data juga), lemah dari sisi
keamanan data tetapi lebih cepat.

 By value hanya mengkopi data di dalam procedure yang dipanggil saja, data asli
tidak berubah sehingga lebih aman. Tetapi program akan berjalan lambat jika
data yang diproses cukup besar.

Exit Sub
Menyebabkan penghentikan dari Function / Procedure jika suatu kondisi If / Then
tercapai
function
 Disebut juga dengan user-defined function → function yang dibuat sendiri
oleh programmer
 Dipergunakan dengan cara yang sama dengan built-in function
 Menghasilkan output/hasil tunggal

Format:
Private Function NamaFunction(var1 as Type1, …) As dT
‘Blok Perintah di sini
FncName = ekspresi
End Function

dT adalah tipe data dari nilai yang dihasilkan oleh function


function
Contoh: tentukan nilai rerata dari 3 bilangan.

Private Function Rerata(s1 As Single, s2 As Single, s3


As Single) As Single
Rerata = (s1 + s2 + s3)/3
End Function

Private Sub cmdRerata_Click()


A=Rerata(x,y,z)
End sub
function
Private Sub f2c_Click()
'Fahrenheit ke Celcius
Dim ftemp As Single
ftemp = Val(Fdegs.Text)
c_degrees = F_to_C(ftemp)
coutput.Print ftemp; " degrees F = ";
c_degrees; " degrees C"
End Sub

Private Function F_to_C(temp As Single)


F_to_C = (5 / 9) * (temp - 32)
End Function
Function Rekursif

 Function Rekursif (Recursive Function) adalah function yang memanggil dirinya


sendiri.
 Setiap pemanggilan ditujukan pada bentuk yang lebih sederhana dari function
aslinya.
 Panggilan dibuat sampai pada bentuk yang paling sederhana dari permasalahan
yang dihadapi.

Contoh sederhana adalah deret Fibbonaci


deret Fibbonaci
fn+1
f n+1 = fn + f n-1 fn fn-1

3 f4 = f 3 + f 2
2 f3 = f 2 + f 1
1 f2 = f1 + f0 dimana f0=0 dan f1=1
f0 f1 f2 = f1 +f0 f3= f2 + f1 f 4 = f3 + f 2
0 1 1 0 1
Kondisi
Awal
f1 +f0 f2 + f1 f1 + f0
1 0 1 1 0
f1 + f0
1 0
deret Fibbonaci
Private Sub Fibo_Click()
Dim fibn As Single, n As Single
n = 7
Do Until n = 0
fibn = fibs(n)
n = n - 1
Print fibn
Loop
End Sub

Public Function fibs(fn As Single) As Single


If (fn = 0 Or fn = 1) Then
fibs = fn
Else
fibs = fibs(fn - 1) + fibs(fn - 2)
End If
End Function

Anda mungkin juga menyukai