Nambah keterangan dari Mas Kudo...

Gampangnya...program besar itu terdiri dari sub - sub
program, seperti CPU itu terdiri dari processor,
memory, HD.

Dalam bahasa basic, sub program itu ada 2 jenis yaitu
:
1. Sub (singkatan dari subrutin)
2. Function

Perbedaannya :
Sub hanya melakukan proses, tidak mengembalikan
(menghasilkan) nilai, sedangkan function mengembalikan
(menghasilkan) nilai.

Untuk VB ditambahkan event sub yang akan dikerjakan
jika suatu event terjadi, misalnya sub pada saat
tombol diklik (sub click) , sub pada saat tombol
keyboard ditekan (sub keydown, keyup dan keypress) dan
lain-lain.

Contoh penggunaan Sub pada program BASIC sederhana :

Sub Jumlahkan()
   A = 5 + 3
   print A
end sub

Function Kalikan() as integer
    Kalikan = 5 * 3
end function

Cara manggilkan (seperti yang sudah dijelaskan Mas
Kudo) adalah :

Jumlahkan atau Call Jumlahkan
setelah pernyataan ini dikerjakan akan muncul angka 8.

print Kalikan() atau Call Kalikan()
setelah pernyataan ini dikerjakan akan muncul 15.

Perhatikan perbedaan pemanggilan sub dan function.
Pemanggilan sub hanya menyertakan namanya saja,
sedangkan function disertakan perintah PRINT untuk
menampilkan nilai yang dikembalikan function ke layar.

Sub dan function dapat menerima masukan nilai atau
mengeluarkan nilai. Masukan dan keluaran ini disebut
parameter (berbeda dengan nilai yang dikeluarkan
function, parameter bersifat optional, boleh ada boleh
tidak tergantung kebutuhan, sedangkan nilai yang
dikembalikan/dihasilkan function wajib ada walaupun
Null/hampa).

Dalam pengiriman nilai ke dalam parameter ada dua
jenis yaitu :
1. Pengiriman secara nilai (pass by value), yaitu
pengiriman nilai yang bersifat read only artinya jika
di dalam sub atau function terjadi perubahan nilai,
maka perubahan tersebut hanya terjadi selama
pemanggilan sub atau function yang dipanggil tersebut
dan tidak mempengaruhi nilai asal parameter tersebut.

2. Pengiriman secara referensi (pass by reference),
yaitu pengiriman nilai yang bersifat read write
artinya jika nilai parameter tersebut berubah pada
saat sub atau function dikerjakan, maka perubahan
tersebut akan mempengaruhi nilai asal.

contoh pass by value :

'*** Definisi sub rutin ***
Sub KirimParamter(byval M as integer)
    M = 10
end sub

contoh pass by reference 
Sub KirimReferensi(M as integer)
    M = 50
end sub

A = 5

'*** Pemanggilan Sub ***
Call KirimParameter(A)
Print A 
pada saat perintah ini dijalankan akan tampil 5 yaitu
nilai A yang  dikirimkan ke dalam parameter M
(perhatikan pendefinisian sub KirimParameter). Di
dalam sub tersebut nilai parameter M diganti jadi 10
(M=10), tetapi karena sifatnya hanya read only (by
value), maka ketika dicetak nilai variabel A yang
dikirimkan sebagai parameter M akan tetap tampil 5
(bukan 10) sebagai nilai asal (awal) variabel A.

Call KirimReferensi(A)
Print A
pada saat perintah ini dijalankan akan tampil 50 yaitu
nilai parameter A yang dikirimkan ke dalam parameter M
(perhatikan pendifinisian sub KirimReferensi). Di
dalam sub tersebut nilai parameter M diganti menjadi
50, dan karena sifatnya yang read write (by reference)
maka perubahan nilai parameter M mempengaruhi nilai
asal data yaitu variabel A. Akibatnya, begitu nilai A
dicetak akan menghasilkan 50.

Gitu loh...
Tapi kalo kurang jelas juga, temen2 lain mungkin bisa
kasih pendapat yang lebih cerah...

Semoga membantu.




--- "Kudo, Shinichi" <[EMAIL PROTECTED]>
menulis:

> Dear Aji,
> 
> saya coba jelaskan yc semoga ga tambah2 bingung he
> he he (untuk suhu mohon CMIIW)
> 
> 
> Di VB Prosedure di kenal dengan SUB, contoh 
> 
> Private Sub tampilPesan(Byval sMSG as String) 'tidak
> ada hasil
> 
>     msgbox sMSG
> 
> end SUB
> 
> 
> sedangkan Function  FUNCTION, Contoh
> 
> Private Function HitungLuas(byval P as integer,
> byval L as integer) as Integer   'Hasil dari fungsi
>     
>     HitungLuas = P * L
> 
> End Function
> 
> 
> 
> 
> cara manggil di program :
> Private Sub Command1_Click()
> 
>         call sMSG("Hallo")
>         'atau
>         sMSG "Hallo"        
> 
> End Sub
> 
> 
> 
> Private Sub Command1_Click()
> dim Luas as Integer
> 
> 
>          Luas = HitungLuas(5,4)
>         
> End Sub
> 
> 
> 
> 
> yach sampe sini bingung ga??? Semoga enggak
> yach....secara global Prosedure adalah "Potongan
> program yang di gunakan tetapi tidak menghasilkan
> sesuatu" sedangan Fungsi "Potongan Program yang di
> gunakan dan menghasilkan sesuatu"
> 
> mungkin udah mulai bingung nech, saat kita menjalan
> kan prosedure (sub) itu tidak ada hasilnya lihat
> dech contoh prosedure.
> kalo ada pertanyaan, lho buat apa sech kita bikin
> prosedure / fungsi...bayangkan ada membuat project
> dengan VB yang menggunakan Code yang sama
> berulang-ulang pasti terasa dech enaknya
> prosedure/fungsi. selain itu prosedure/fungsi
> membuat code terlihat rapi, tersturktur dan  cantik
> (halah...hehehe)
> 
> wah hampir lupa kalo bingung apa itu ByVal arti
> selengehannya gini....waktu kita membuat prosedure
> atau fungsi KADANG kita memerlukan variable nah itu
> lah guna nya ByVal. tetapi Byval itu hanya mengirim
> VALUE atau NILAI saja ke PROSEDURE/FUNGSI tanpa
> merubah Variable aslinya. kalo pake ByREF variable
> yang mengirimnya akan berubah/dirubah saat Variable
> di Fungsi atau prosedure di rubah. karena pada
> dasarnya ByRef itu menggunaan Pointer (wah ini ribet
> nech nerangin nya udah agak2 lupa :p)
> 
> oh iya ada satu lagi selain ByVal, ByRef yaitu
> Optional (artinya saat fungsi/procedur di panggil ga
> pake variable gpp)
> 
> ok dech gitu aja pencerahannya (semoga aja jd cerah
> :p) kalo tambah bingung bisa japri ke Y!
> [EMAIL PROTECTED] 
> 
> 
> 
> 
> Salam, 
> 
> Jemy
> IT @ TGSSI (Astra Otoparts Groups)
> Freelancer Programmer (kalo ada project untuk
> VB/VBNET jangan malu untuk Call :p)
> 
> *maaf sekalian promosi, siapa tau ada yang mau
> ngajak pindah...he he he 
>  
> 
> 
> 
> 
> 
> 
> 
> ----- Original Message ----- 
> From: via76ers 
> To: [email protected] 
> Sent: Tuesday, June 24, 2008 1:26 PM
> Subject: [*** SPAM ***] [indoprog-vb] prosedure dan
> function
> 
> Dear all,
> Saya sudah membaca beberapa artikel mengenai
> prosedure dan function..
> tapi kok gak ngerti2 juga ya..
> Mungkin ada temen2 yang bisa bantu jelasin....?
> sekalian contoh dan penggunaannya ya.. biar lebih
> ngerti..
> 
> regards
> Aji
>  
> 
> 
> <<Please Make a Diggest This Groups>>
> 
> [Non-text portions of this message have been
> removed]
> 
> 



      
___________________________________________________________________________
Dapatkan alamat Email baru Anda!
Dapatkan nama yang selalu Anda inginkan sebelum diambil orang lain!
http://mail.promotions.yahoo.com/newdomains/id/

Kirim email ke