Skip to main content

Bekerja Dengan Prosedur SUB & Functions

BEKERJA DENGAN PROSEDUR
SUB & FUNCTIONS

Penulisan program yang telah dibahas dalam bab sebelumnya seluruhnya haya terdiri dari satu sub routine karena prohramnya kecil. Namu anda mungkin perku menulis lebih dari satu sub routine jika program anda lebih besar, agar anda tidak perlu menempatkan semua perintah dalam satu sub routine sehingga membuat sulit untuk di-debug.
Kata-kata macro dan fungsi sering digunakan secara bergantian untuk mengacu pada prosedur yang ditulis dalam visual basic Application (VBA). Bab ini akan menjelaskan perbedaan antara prosedur Sub (atau macro) dengan prosedur function, bagaimana keduanya dipanggil dan cara kerja keduanya dalam mengubah lingkungan kerja.

              Sekilas Tentang Prosedur Sub
Ada tiga jenis prosedur di Excel VBA, yaitu SUB (sub routine standar), function (sub routine yang mengembalikan nilai), dan property yang disediakan untuk class module.Sejauh ini, progam VBA yang ditulis selalu tertutup dalam kata kunci Sub\End Sub.Kata Sub merupakan singkatan dari sub roitine. Sebuah sub roitine adalah sekelompok kode yang melakukan funngsi tertentu (seperti menghitung lias lingkaran).
Sebuah sub roitine, seperti HitungLuas(luas,radius) dapat menerima argumen untuk nilai, radius dan kemudian dilewatkan ke sub roitine lain, HitungLuasLingkaran(luas,radius).
Contoh :

Makro berikut memiliki duasub routine, HitungLuas 1() dan HitungLuasLingkaran1()yang menghitung luas lingkaran dengan menerima user input untuk radius (jari –jari lingkaran) lalu memanggil sub routine Hitung Luas Lngkaran1() untuk menghitung luas lingkaran.

Perhatikan bahwa kata kunci Calldigunakan untuk memanggil sub routine, HtungLuasLingkaran1). Perhatikan juga bahwa argumen area dan radius berada dalam kurung sub routne HitungLuasLingkaran1().
Variabel area akan dilewati ke sub routine, HitungLuasLingkaran1() untuk menyimpan hasil dari area yang dihitung, variabel radius digunakan untuk melewati nilai user input ke sub routine HitungLuasLingkaran1() yang digunakan untuk menghitung luas lingkaran.
Setelah sub routine HitungLuasLingkaran1() selesai menghitung, sub routine ini akan mengembalikan hasil kembal ke subbroutine HitungLus1() dengan varabel area yang sebelumnya sudah menyimpan hasilnya dan menampilkan nilai dari varabel area dalam kotak pesan.

·        Cara Menulis Prosedur Sub
Sub adalah prosedur paling umum yang digunaan ketika merekam makrp. Prosedur sub menjalankan kode baris demi baris menurut urutannya atau melaksanakan serangan tindakan dan atau perhitungan.
Sintaks
Elemen argumen adalah opsional yang dapat ditentukan secara eksplisit atau implisit sehngga memungkinkan nila/referensi untuk diteruskan ke prosedur yang memanggilnya (calling procedure) dan kemudian ditangani sebaga variabel.
Saat merekam makro, argumen tdak digunakan (perhatikan argumen untuk prosedur tersebut koson, yaitu tidak ada argumen diantara tanda kurung).
Jika anda membuat membuat rosedur untuk digunakan sebagai makro, anda tidak boleh menggunakan argumen apapun.
Prosedur sub dapat bersfat rekurtif jika prosedur iitu dapat bercabang ke prosedur lain dan kemudian kembali keprosedur yang memanggil (/call procedure).
        Untuk memanggil prosedur lain, gunakan pernyataan Call yang disertai dengan nama prosedure dan argumen opsionalnya. Jka argumen digunakan, anda harus menggunakan tanda kurung untuk daftar argumnet tersebut.
Contoh :
Prosedur berikut akan dpanggil dengan argumen tunggu yang ditetapkan secara eksplisit sebagai string.
Benar (alternatif) – tidak menggunakan kata kunci Call & tidak perlu tanda kurung.

Sebuah prosedur yang dapat dihendaki secara prematur dengan menggunakan pernyataan Exit Sub yang ditemptkan sebelum pernyataan End Sub.
‘Prosedur berhenti setelah bagian A & tidak jalankan bagian B

·        Sekilah Tentang Prosedur Function
Selain prosedur sub, ana juga dapat menggunakan prosedur function untuk menghitung luas lingkaran dari sub routine yang memanggil seperti contoh  berikut.
Hasil :
Ketika menentukan sebuah fungsi, anda kan menggunakan kata kunci Fuction/End Function daripada menggunakan kata kunci Sub/End Sub di prosedur sub.
           Untuk memanggi fungsi, anda dapat menggunakan kode berikut. 
       Namun, lebih baik anda memanggil fungsi dengan menggunakan kode berikut. Anda tidak harus menggunakan kata kunci Call dalam pemanggilan fungsi.
       Bila menggunakan fungsi, anda harus meewati variabel area untuk menyimpan output seperti kode berikut.
       Sebaliknya, variabel area akan diberi (assigned) nilai hasil dari fungsi HitungLuasLingkaran2(radius). Hal ini karena sifat fungsi yang dapat mengembalikan hasil output melalui nama fingsinya.

·        Cara Menulis Prosedur Fuction
Perbedaan utama antara prosedur sub dan function adalah bahwa prosedur function dapat mengembalikan nilai akibat menjalankan prosedurnya sedangkan  prosedur Sub tidak dapat mengembalikan nilai.
       Sebuah analogi sederhana dari prosedur function bila dibandingkan dengan prosedur sub dapat diilustrasi dengan menggunakan dua fitur Excel berikut.
1.      Perintah file > Save merupakan suatu tindakan yang tidak mengembalikan nilai dan dianggap sebagai prosedur Sub.
2.      Fungsi Sun menghitung jummlah bdalam satu kisaran nilai yangdipilih serta mengembalikan nilai tersebut dan dianggap sebagai prosedur function.
Sintaks :
Elemen “argumen yang berisifat opsional memungkinkan nilai/referensi untuk dilewatkan ke prosedur yang memanggil dan diperlukan sebagai variabel.
Atribut “Type merupakan opsional dan dapat digunakan untuk menemukan fungsi ekspisi. Bila atribut Type tidak ditentukan, maka fungsi akan mengembalikan ekspresi (atau nilai) dan fungsinya pada baris terakhir sebelum End Function.
Anda tidak dapat mendefinisikan fungsi dalam fungsi lain, baik pada prosedur sub ataupun prosedur property. Jenis prosedur ini dapat dipanggil dalam sebuah modul oleh prosedur sub atau dieksekusi sebagai fungsi user defined function (UDF) di worksheet Excel.
         Sebuah prosedur dappat dihentikan sebelum waktunya dengan menggunakan pernyataan Exit Function yang ditulis sebelum pernyataan End function.
         Contoh :
         Prosedur function berikut akan mengkonveksi suhu fahrenheit ke celcius.
Apabila prosedur KonveksiSuhu() memanggil fungsi Celcius() anda harus menyatakan argumen Fahrenheit untuk digunakan sebagai prosedur fungsi tersebut. Anda tidak perlu menentukan jenis kembalinya sebuah fungsi. Secara default, Excel akan memperlukan jenis kembali sebagai Variant.
Hasil :
Dalam excel, fungsi yang dapat dipangggil secara langsung dalam worksheet dikenal sebagai User Defined Function (UDF). Misalnya di sel B3, anda dapat memanggil fungsi Celcius() utuk mengkonversi suhu fahrenheit ke celcius dengan menyisipkan rumus fungsi tersebut.
=Celcius(B2)
Hasil :
Namun, jika anda ingin menggunakan fungsi dari workbook lain, anda harus menyertakan nama workbook pada saat anda memanggilnya. Kode berikut mengasumsikan bahwa fungsi tersebut letak di dalam workbook Rumus.xlsm.
Workbook Rumus.xlsm harus terbuka (Walaupun mungkin tersembunyi) untuk dapat memanggil workbook.

·                              Penempatan kode UDF
        Kode untuk UDF harus ditempatkan dalam standar modul dan tidak dalam modul worksheet(Sheet) atau dalam modul ThisWorkbook.
Pada editor VBA, pilih menu Insert > Modul untuk menyisipakn modul baru ke dalam proyek.
Anda dapat menulis banyak fungsi dalam satu modul dan anda dapat juga mengubah nama modul dari Module1(Default) ke nama yang diinginkan dengan menekan F4 untuk menampilkan jendela.
Poperti > mngubah properti Name.
          Anda dapat meanggil fungsi workbook dengan kode berikut :
=Rectang1Area(12, 34)
·                               Mengembalikan error dari fungsi
Untuk melakukan hal ini , fungsi tersebut harus mengembalikan hasil bertipe variant dan mengubah fungsi CVErr. Fungsi Divide() berikut akan mengembalikan error #DIV/0 jika pembagiannya adalah 0.
        Anda dapat menggunakan salah satu konstanta error berikut dengan fungsi CVErr untuk mengembalikan nilai error k Excel.
Kode
Untuk Error
xIErrDiv0
#DIV/0
xIErrNA
#N/A
xIErrName
#NAME?
xIErrNull
#NULL
xIErrNum
#NUM
xIErrRef
#REF
xIErrValue
#VALUE
·         
              Perbedaan prosedur Sub & Function
      Perbedaan utamanya adalah bahwa prosedur  function dapat mengembalikan nilai tetapi prosedur sub tidak dapat mengemablikan nilai.
      Jika anada menulis dungsi dala Module di project Explorer, anda dapat memanggil fungsi tersebut dar worksheeetseperti memangggil funsi bawaan excel sum().

Prosedur Sub
Prosedur Functions
Penentuan dengan menggunakan kata kunci sub/end sub
Penetuan dengan menggunakan kata kunci functions/end Funtions
Menggunkan kata kunci Call untuk memanggil prosedur sub call HitungLuasLingkaran(luas, radius)
Tidak menggunakan kata kunci Call untuk memanggil prosedur Functions
luas = HitungLuasLingkaran(radius)
Varibel harus dilewatkan unruk menyimpan output.
Variabel tidak perlu dilewatkan untuk menyimpan output.
Dapat menerima argumen yang dilewatkan tetapi tidak dapat mengembalikan nilai hasil.
Dapat menerima argumen yang dilewatkan dan juga dapat mengaembalikan nilai hasil.
Hanya dapat dipanggil di VBA dan tidak dapat dipanggil langsung dari worksheet (Sel)
Dapat dipanggil di VBA dan juga dapat dipanggil langsung dari worksheet (Sell)















Comments

Popular posts from this blog

lambang saka wira kartika

LAMBANG SAKA WIRA KARTIKA Lambang Saka Wira Kartika berbentuk segi lima beraturan dengan warda dasar merah dan putih. Di dalamnya terdapat gambar Kartika Eka Paksi, 2 buah tunas kelapa, 2 untai batang padi yang menguning, dan pita bertuliskan Saka Wira Kartika. Gambar Kartika Eka Paksi merupakan lambang dan semboyan TNI Angkatan Darat. lambang Saka Wira Kartika Penjelasan lebih mendalam mengenai lambang Saka Wira Kartika beserta arti kiasan yang terkandung di dalamnya akan diuraikan dalam artikel tersendiri. Anggota Saka Wira Kartika Layaknya pada Satuan Karya Pramuka lainnya, anggota Saka Wira Kartika disyaratkan seorang Pramuka Penegak atau Pramuka Pandega baik putera dan puteri yang menjadi anggota  gugusdepan  di wilayah cabang atau ranting di mana Saka Wira Kartika itu berada.  Untuk dapat mendaftar sebagai anggota Saka Wira Kartika seorang pramuka harus : §   Pramuka Penegak Bantara atau Pramuka Penegak Laksana atau...

Event Programming Dengan Excel VBA

Event Programming Dengan  Excel VBA o    Menggunakan VBA Excel untuk event programming Untuk membuka excel visual basic editor tekn Alt+F11 sesudah anda membuka excel. Jika anda belum membuat macro, jendela code tidak akan menampilkan apa-apa kecuali jika anda klik ganda pada Sheet1 (atau objek lain seperti modul). Atau pilih menu Insert > UserFrom untuk membuat user from baru atau Insert > Module untuk membuat modul baru. Lingkungan Visual Editor pada dasarnya terdiri dari jendela berikut ini. Keterangan dari masing-masing bagian sudah dijelaskan dalam Bab 1. Bagian / Jendela Untuk membuka 1. Standar Toolbar Pilih menu View > Toolsbars > Standard 2. Project Explorer Pilih menu View > Project Explorer atau tekan tombol Ctrl + R 3. Code Pilih menu View > Code atau tekan tombol F7 4.Properties Pilih menu View > Properties Window atau tekan tombol F4 5. Immediate ...

Saka Wirakartika Kabupaten Sragen Tahun 2018

SAKA WIRAKARIKA KABUPATEN SRAGEN TAHUN 2018 Hallo kakak-kakak pramuka diseluruh dunia. Apa kabar nih? Ciyelah,, sehatkan ? Alhamdullilah. Pada kesempatan kali ini kita akan membahas salah satu tentang Satuan Karya Pramuka yaitu saka wira karika. Apasih saka wirakartika itu ? dan kegiatan apakah yang sedang berlangsung? Yuhh, cusss kit abaca arikel berikut. Saka atau Satuan Karya Pramuka Wira Kartika   merupakan salah satu Satuan Karya Pramuka yang bersifat nasional. Saka yang dibentuk lewat kerjasama antara Kwartir Nasional dengan TNI Angkatan Darat ini bertujuan untuk mengembangkan pendidikan bela negara. Di samping Saka Wira Kartika, saka lainnya yang bersifat nasional seperti Saka Bhayangkara ,  Saka Bahari , Saka Bakti Husada, Saka Dirgantara, Saka Kencana, Saka Taruna Bumi, Saka Wanabakti, Saka Pariwisata, Saka Kalpataru, dan Saka Widya Budaya Bakti. Saka Wira Kartika adalah wadah kegiatan bagi  Pramuka Penegak  dan  Pramuka Pandega untuk men...