BAB II
TINJAUAN PUSTAKA
2.1 Matahari
Matahari adalah bola energi gas panas dengan diameter 1.39 x 109 m dan memiliki jarak sekitar 1,5 x 1011 m dari bumi. Seperti yang dapat dilihat dari bumi, matahari berputar pada sumbunya sekitar sekali dalam empat minggu. Bagaimanapun, matahari tidak berputar sebagai benda padat pada umumnya, garis khatulistiwanya membutuhkan sekitar 27 hari dan masing-masing kutubnya membutuhkan sekitar 30 hari untuk setiap rotasi.
Sumber energi berjumlah besar dan kontinu terbesar yang tersedia bagi umat manusia adalah energi surya dan energi elektromagnetik yang dipancarkan oleh matahari. Energi surya sangat efektif karena tidak bersifat polutif dan tidak dapat habis. Akan tetapi arus energi yang rendah mengakibatkan digunakannya system dan kolektor yang permukaan luas untuk mengumpulkan dan mengkonsentrasikan energi matahari ini.
2.1.1 Radiasi Sinar Matahari
Radiasi Sinar matahari yang tersedia diluar atmosfer bumi seperti yang diungkapkan oleh konstanta surya (Gsc) adalah sebesar 1,353 kJ/(m2), dikurangi
• Radiasi langsung (direct radiation)
Intensitas radiasi langsung atau sorotan per jam pada sudut masuk normal Ibn dari persamaan berikut ini,
�
�� = ��cos ��
………..………….………(2.1) [Lit.2]
Dimana Ib adalah radiasi sorotan pada sumbu permukaan horizontal dan cos �z adalah sudut zenith. Dengan demikian, untuk suatu permukaan yang
dimiringkan dengan sudut β terhadap bidang horizontal, intensitas dari komponen sorotan adalah,
�
��= �������
�=�
�cos ��
cos �� ………(2.2) [Lit.2] Dimana �T disebut sudut masuk, dan didefenisikan sebagai sudut antara
arah sorotan pada sudut masuk normal dan arah komponen tegak lurus (90o) pada permukaan bidang miring.
• Radiasi Sebaran (diffuse radiation)
Radiasi sebaran yang disebut juga radiasi langit (sky radiation), adalah radiasi yang dipancarkan ke permukaan penerima oleh atmosfer, dan karena itu berasal dari seluruh bagian hemisfer langit. Radiasi sebaran (langit) didistribusikan merata pada hemisfer (disebut distribusi isotropik), maka radiasi sebaran pada permukaan miring dinyatakan dengan,
�
��=
�
��1+cos β2 �
………..(2.3) [Lit.2]
• Radiasi Pantulan
Selain komponen radiasi langsung dan sebaran, permukaan penerima juga mendapatkan radiasi yang dipantulkan tergantung dari reflektansi α (albeldo) dari permukaan yang berdekatan itu, dan kemiringan permukaan yang menerima. Radiasi yang dipantulkan per jam, juga disebut radiasi pantulan. Radiasi pantulan dirumuskan sebagai,
�
��=
α
(I
b+ I
d)
�
1−cos β2
�
…………....…………(2.4) [Lit.2]Dimana reflektansi dianggap 0,20 – 0,25 untuk permukaan- permukaan tanpa salju dan 0,7, untuk lapisan salju yang baru saja turun, kecuali jika tersedia data yang lain.
IbT
Ibn
Ibn θT
Θz
β
Gambar 2.1 Radiasi Sinar Matahari
2.1.2 Variasi dari Radiasi Matahari pada Ruang Hampa Udara
perbedaan periodic dan variasi yang bergantung kepada pori-pori matahari. Wilson (1981) menjelaskan bahwa variasi yang didapat mencapai 0,2% yang berhubungan dengan perubahan pori-pori matahari. Sebagian lain berpendapat pengukuran tidak dipengaruhi variabel pada umumnya. Pengamatan satelit Nimbus dan Mariner selama beberapa bulan menunjukkan variasi ±0,2% sepanjang waktu ketika pori-pori matahari sangat kecil (Frohlich, 1997). Data dari Hickey (1982) selama rentang waktu 2,5 tahun dari satelit Nimbus 7 menunjukkan bahwa konstanta matahari menurun secara perlahan, rata-rata 0,02% per tahun.
Bagaimanapun, variasi daripada jarak bumi ke matahari, mengakibatkan variasi dari fluks radiasi matahari pada ruang hampa udara dalam rentang ±3,3%. Perhitungan sederhana dengan akurasi yang paling memadai untuk perhitungan bidang teknik ditunjukkan di oleh persamaan :
��� = ����1 + 0.033 cos360365��………..………(2.5) [Lit.3]
Spencer (1971), membuat suatu perhitungan yang lebih akurat (±0,01%) ditunjukkan juga pada perhitungan :
��� =���(1.000110 + 0.034221 cos�+ 0.001280 sin B +
0.000719 cos 2� + 0.000077 sin 2�)………...……....(2.6) [Lit.3] Dimana Gon merupakan radiasi yang diterima atmosfer pada hari ke-n dan B
dirumuskan sebagai �= (� −1)360
365………(2.7) [Lit.3]
Tabel 2.1 Rekomendasi hari rata-rata dan nilai n untuk setiap bulan Bulan Nilai n Untuk rata-rata tiap bulan
Tanggal N �(derajat)
Januari i 17 17 -20.9
Februari 31+i 16 47 -13.0
Maret 59+i 16 75 -2.4
April 90+i 15 105 9.4
Mei 120+i 15 135 18.8
Juni 151+i 11 162 23.1
Juli 181+i 17 198 21.2
Agustus 212+i 16 228 13.5
September 243+i 15 258 2.2
Oktober 273+i 15 288 -9.6
November 304+i 14 318 -18.9
Desember 334+i 10 344 -23.0
2.1.3 Defenisi
Beberapa defenisi yang akan sering muncul mengenai radiasi matahari adalah :
• Massa udara (m) merupakan perbandingan dari massa atmosfer yang dilalui oleh radiasi matahari dengan massa atmosfer yang dilalui oleh radiasi matahari pada kondisi zenith (puncak)
secara langsung; untuk menghindari kebingungan antara langsung dan berdifusi, maka digunakan istilah sinar radiasi)
• Radiasi difusal (penyebaran). Radiasi matahari yang diterima dari matahari setelah mengalami perubahan arah ketika menyentuh lapisan atmosfer • Radiasi total. Total penjumlahan dari radiasi beam dan radiasi difusal pada
permukaan bidang
• Irradiance, W/m2. Nilai dari energi radiasi yang terjadi pada permukaan suatu bidang. Simbol G digunakan untuk penyinaran matahari dengan penyesuaian untuk beam, difusal dan radiasi spektrum
• Waktu matahari merupakan waktu berdasarkan gerakan angular matahari yang terlihat di langit, dimana waktu siang matahari adalah ketika matahari melintasi meridian dari sudut pandang pengamat.
Waktu matahari digunakan di semua perhitungan sudut matahari, waktu matahari tidak sama dengan waktu di bumi. Dibutuhkan untuk mengkonversikan waktu standard di bumi kedalam waktu matahari dengan mengacu pada dua faktor koreksi. Pertama, ada faktor koreksi konstan untuk perbedaan garis bujur antara meridian(bujur) pengamat dan meridian berdasarkan standar waktu lokal. Matahari membutuhkan sekitar 4 menit untuk berpindah bujur 1o. Faktor koreksi kedua adalah melalui perhitungan waktu, yang memperhitungkan gangguan di tingkat rotasi bumi yang mempengaruhi waktu matahari ketika melintasi meridian pengamat. Perbedaan waktu dalam menit antara waktu matahari dan waktu standar dirumuskan sebagai :
Dimana Lst, adalah standar meridian untuk zona waktu lokal, Loc adalah
bujur dari lokasi yang dicari, dan dalam derajat barat, yaitu 0o< L <360o. Parameter E adalah perhitungan perbedaan waktu(dalam menit), yang dirumuskan oleh Iqbal (1983) :
� = 229.2 (0.000075 + 0.001868 cos� − 0.032077 sin� −
0.014615 cos 2� − 0.04089 sin 2�………..(2.9) [Lit.3]
2.1.4 Posisi Matahari
Besarnya jumlah radiasi matahari yang diterima oleh suatu tempat dipengaruhi oleh posisi sudut matahari yang masuk ke tempat tersebut. Dalam perencanaan suatu kolektor surya, posisi sudut matahari sangat perlu diketahui untuk memperoleh hasil yang maksimal sesuai dengan perancanaan.
z
sudut zenith
E
p A sudut azimuth W
S Gambar 2.2 Posisi sudut Matahari
normal pada bidang horizontal. Sudut azimuth positif jika normal adalah sebelah timur dari selatan dan negative jika normal pada sebelah barat dan selatan. Sudut altitude adalah sudut yang dibuat oleh garis titik pusat matahari dengan garis proyeksinya pada bidang horizontal.
2.1.5 Arah Dari Radiasi Sinar Matahari
Hubungan geometris diantara bidang tetentu bersifat relatif terhadap bumi setiap waktu. (tidak peduli apakah bidang itu statis atau bergerak relatif terhadap bumi) dan sinar radiasi matahari yang memancar ke bumi yang dimana posisi dari matahari juga relatif terhadap bidang tersebut, dapat digambarkan pada beberapa jenis sudut (Benford and Bock, 1939). Beberapa sudut yang dimaksud digambarkan pada gambar 2.3 :
Gambar 2.3 (a) sudut zenith, slope, sudut permukaan azimuth dan sudut azimuth matahari untuk bidang miring. (b) Penampang untuk
Latitude, posisi angular utara ataupun selatan dari khatulistiwa, utara bernotasi positif; -90o≤ ≤ 90o
� Declinasi, posisi angular daripada matahari pada saat siang waktu matahari(yakni ketika matahari pada posisi bujur local) yang mengenai bidang khatulistiwa, utara bernotasi positif; -23,45o ≤ �≤ 23,45o
� Slope, sudut yang dibentuk oleh permukaan bidang yang dimaksud (yang
menerima radiasi matahari) dan garis horizontal; 0o ≤ � ≤ 180o (� > 90o menunjukkan bahwa permukaan tersebut menghadap ke bawah)
� Sudut permukaan azimuth, deviasi dari proyeksi pada bidang horizontal pada kondisi normal, terhadap permukan dari bujur lokal, dengan nilai nol untuk selatan, negative untuk timur, dan positif untuk barat; -180o≤
� ≤ 180
� Sudut waktu, perpindahan angular matahari matahari dari timur ke barat pada posisi bujur lokal mengacu kepada rotasi bumi pada sumbunya yaitu 15o setiap jamnya; notasi negative untuk pagi hari, dan positif untuk siang hari
� Sudut insidensi, sudut diantara sinar radiasi pada permukaan dan pada garis normal terhadap suatu bidang
Sudut tambahan yang menggambarkan posisi matahari yang terlihat dari permukaan bumi :
�z Sudut zenith, merupakan sudut antara garis vertical terhadap matahari,
yaitu sudut insidensi sinar radiasi pada permukaan horizontal
�s Sudut matahari altitude, merupakan sudut antar bidang horizontal dan
�s Sudut azimuth matahari, merupakan perpindahan angular dari selatan
pada proyeksi sinar radiasi matahari pada bidang horizontal, ditunjukkan pada gambar di atas. Perpindahan dari timur ke selatan dinotasikan negative sedangkan barat ke selatan dinotasikan positif.
Adapun untuk menghitung sudut declinasi � dapat kita gunakan persamaan Copper(1969)
�= 23,45 sin�360284+�
365 �………(2.10) [Lit.3] Atau untuk perhitungan yang lebih akurat (error < 0.035o) dari Spencer(1971), seperti yang dikutip oleh Iqbal (1983)
δ = 0.006918 – 0.399912 cos B + 0.070257 sin B – 0.006758 cos 2B + 0.000907 sin 2B – 0.002679 cos 3B + 0.00148 sin 3B…….(2.11) [Lit.3] Untuk permukaan bidang datar, besar sudut insidensi adalah sama dengan
sudut zenith matahari, θz. Nilainya pasti diantara 0o sampai dengan 90o ketika
matahari berada tepat di atas kepala. Untuk kondisi ini maka β = 0, dan persamaan
untuk menghitung cosinus θz adalah :
cos�� = cos�cos�cos�+ sin�sin�……….(2.12) [Lit.3]
Dengan menggunakan hubungan antara sudut insidensi pada permukaan bidang miring baik posisi lintang utara ataupun lintang selatan dapat didapatkan
kenyataan bahwa sudut slope β pada utara ataupun selatan memiliki hubungan
angular yang sama terhadap radiasi beam seperti pada bidang datar dengan asumsi garis lintang adalah � – β. Sehingga persamaannya berubah menjadi:
cos� = cos(� + �) cos�cos�+ sin(�+ �) sin�………(2.14) [Lit.3]
2.1.6 Perbandingan Intensitas Radiasi pada Bidang Miring dengan Bidang Datar
Untuk tujuan desain dan perhitungan performansi, penting untuk menghitung radiasi tiap jam pada permukaan miring suatu permukaan dari pengukuran ataupun perkiraan radiasi matahari pada bidang datar. Umumnya data yang tersedia adalah radiasi total selama beberapa jam atau hari pada permukaan horizontal, dimana dibutuhkan radiasi beam dan radiasi difusal pada permukaan kolektor.
Faktor geometris Rb, perbandingan antara radiasi beam pada permukaan
miring terhadap permukaan horizontal, dapat dihitung dengan menggunakan persamaan dibawah ini :
�� = ����� = ������coscos��� = coscos���………..(2.15) [Lit.3]
2.1.7 Estimasi Radiasi Langit Cerah
Efek dari penyebaran dan penyerapan radiasi oleh atmosfer adalah berubah-ubah tergantung pada kondisi atmosfer dan perubahan massa udara. Penting untuk menentukan standarisasi langit cerah dan perhitungan radiasi tiap jam ataupun tiap hari yang diterima oleh permukaan horizontal pada kondisi standar.
Hottel (1976) telah menentukan metode untuk memperkirakan radiasi beam yang ditransmisikan melalui atmosfer yang memperhitungkan sudut zenith dan altitude untuk atmosfer standar dan untuk 4 (empat) jenis iklim. Transmitansi atmosfer untuk radiasi beam Ib adalah Gbt/Gon dan dirumuskan sebagai berikut :
�� = �0+ �1 exp�cos−kθz�………...(2.16) [Lit.3]
Konstanta a0, a1, dan k untuk atmosfer standar dengan jarak pandang 23km
didapat dari ao*, a1*, dan k* , dengan altitude lebih kecil dari 2,5 km dengan
menggunakan persamaan :
�0∗ = 0.04237−0.00821 (6− �)2………(2.17) [Lit.3]
�1∗ = 0.5055 + 0.00595 (6.5− �)2………(2.18) [Lit.3]
�∗= 0.2711 + 0.01858 (2.5− �)2………(2.19) [Lit.3]
Dimana A merupakan altitude dari pengamat dalam kilometer. Faktor koreksi ao*, a1*, dan k* berubah sesuai dengan tipe iklim. Faktor koreksi r0 = a0/a0* ,
r1 = a1/a1*, dan rk = k/k* diperlihatkan pada tabel 2.2. Transmitansi dari atmosfir
standar ini untuk radiasi beam dapat ditentukan untuk sudut zenith berapapun dan altitud sampai 2,5km. Maka radiasi beam normal pada kondisi clear sky (langit cerah) dapat dicari dengan menggunakan persamaan :
Dimana Gon didapat dari persamaan 2. Untuk radiasi beam horizontal pada
kondisi langit cerah, ditentukan dengan persamaan :
�ℎ� =�����cos��………(2.21)[Lit.3] Tabel 2.2 Faktor Koreksi untuk Jenis-Jenis Iklim
Jenis Iklim r0 r1 r2
Tropis 0.95 0.98 1.02
Midlatitude summer 0.97 0.99 1.02
Subartic summer 0.99 0.99 1.02
Midlatitude winter 1.03 1.01 1.00
Hottel(1976)
2.2 Microsoft Visual Basic 6.0
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari
pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object(Object Oriented Programming = OOP).
2.2.1 Mengenal Integrated Development Environment (IDE) VB 6
Pilih Standard EXE dan klik tombol Open.
Gambar 2.5 Tampilan awal Visual Basic
Anda akan melihat tampilan area kerja atau IDE VB 6. Kenali bagian-bagian utama di dalam IDE VB 6 berikut ini :
Keterangan : 1. Menubar 2. Toolbar 3. Toolbox
Bila Toolbox tidak muncul klik tombol Toolbox ( ) pada bagian Toolbar atau klik menu View > Toolbox.
4. Jendela Form
Bila Jendela Form tidak muncul klik tombol View Object ( ) pada bagian Project Explorer atau klik menu View > Object.
5. Jendela Code
Bila Jendela Code tidak muncul klik tombol View Code ( ) di pada bagian Project Explorer atau klik menu View > Code.
6. Project Explorer
Bila Project Explorer tidak muncul klik tombol Project Explorer ( ) pada bagian Toolbar atau klik menu View > Project Explorer.
7. Jendela Properties
Bila Jendela Properties tidak muncul klik tombol Properties Window ( ) pada bagian Toolbar atau klik menu View > Properties Window.
2.2.2 Memahami Istilah Object, Property, Method dan Event
Dalam pemrograman berbasis obyek (OOP), anda perlu memahami istilah object, property, method dan event sebagai berikut :
Method : aksi yang dapat dilakukan oleh object Event : kejadian yang dapat dialami oleh object
Sebagai ilustrasi anggap sebuah mobil sebagai obyek yang memiliki properti, method dan event. Perhatikan gambar berikut :
Gambar 2.7 Ilustrasi Perbandingan Mobil dengan Visual Basic Implementasinya dalam sebuah aplikasi misalnya membuat form, maka form tersebut memiliki property, method, dan event. Sebagaimana pemrograman visual lain seperti Delphi daan Java, VB juga bersifat event driven progamming. Artinya anda dapat menyisipkan kode program pada event yang dimiliki suatu obyek.
2.2.3 Menulis Kode Program
Gambar 2.8 Bagian-bagian dari Jendela Code
Program yang berbasis Windows bersifat event-driven, artinya program bekerja berdasarkan event yang terjadi pada object di dalam program tersebut. Misalnya, jika seorang user meng-klik sebuah tombol maka program akan memberikan “reaksi” terhadap event klik tersebut. Program akan memberikan “reaksi” sesuai dengan kode-kode program yang dibuat untuk suatu event pada object tertentu. Pilih object Command1 pada bagian Object Selector.
2.2.4 Mengenal Data dan Variabel
Ketika seorang user (pengguna) menggunakan sebuah program komputer, seringkali komputer memintanya untuk memberikan informasi. Informasi ini kemudian disimpan atau diolah oleh komputer. Informasi inilah yang disebut dengan DATA.
Visual Basic 6 mengenal beberapa type data, antara lain :
1. String adalah type data untuk teks (huruf, angka dan tanda baca). 2. Integer adalah type data untuk angka bulat.
6. Boolean adalah type data yang bernilai TRUE atau FALSE.
Data yang disimpan di dalam memory komputer membutuhkan sebuah wadah. Wadah inilah yang disebut dengan VARIABEL. Setiap variabel untuk menyimpan data dengan type tertentu membutuhkan alokasi jumlah memory (byte) yang berbeda.
Variabel dibuat melalui penulisan deklarasi variabel di dalam kode program : Dim <nama_variabel> As <type_data>
Contoh : Dim nama_user As String Aturan di dalam penamaan variabel : 1. Harus diawali dengan huruf.
2. Tidak boleh menggunakan spasi. Spasi bisa diganti dengan karakter underscore 3. Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -, *, /, <, >, dll).
4. Tidak boleh menggunakan kata-kata kunci yang sudah dikenal oleh Visual Basic6 (seperti : dim, as, string, integer, dll). Sebuah variabel hanya dapat menyimpan satu nilai data sesuai dengan type datanya. Cara mengisi nilai data ke dalam sebuah variabel :
<nama_variabel> = <nilai_data> Contoh : nama_user = “krisna”
Untuk type data tertentu nilai_data harus diapit tanda pembatas. Type data string dibatasi tanda petik ganda : “nilai_data”. Type data date dibatasi tanda pagar : #nilai_data#. Type data lainnya tidak perlu tanda pembatas.
1. Variabel global adalah variabel yang dapat dikenali oleh seluruh bagian program. Nilai data yang
tersimpan didalamnya akan hidup terus selama program berjalan.
2. Variabel lokal adalah variabel yang hanya dikenali oleh satu bagian program saja. Nilai data yang
tersimpan didalamnya hanya hidup selama bagian program tersebut dijalankan. Variabel yang nilai datanya bersifat tetap dan tidak bisa diubah disebut KONSTANTA. Penulisan deklarasi konstanta di dalam kode program :
Const <nama_kontanta> As <type_data> = <nilai_data> Contoh : Const tgl_gajian As Date = #25/09/2003#
2.2.5 Mengenal Struktur Kontrol
Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yangdigunakan untuk mengatur (mengontrol) jalannya program.Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program.
Ada dua bentuk struktur kontrol keputusan, yaitu : 1. Struktur IF…THEN.
2. Struktur SELECT…CASE.
Bila <kondisi> bernilai True maka <kode program> akan dikerjakan.
2. IF <kondisi> THEN <blok kode program 1> ELSE <blok kode program 2>
END IF
Bila <kondisi> bernilai True maka <blok kode program 1> akan dikerjakan, tetapi bila <kondisi>bernilai False maka <blok kode program 2> yang akan dikerjakan. Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program.
Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Bentuk penulisan (syntax) struktur SELECT…CASE :
SELECT CASE <pilihan>
Bila <pilihan> sesuai dengan <pilihan 1> maka <blok kode program 1> akan dikerjakan, dst. Tetapi bila <pilihan> tidak ada yang sesuai dengan <pilihan 1> s/d <pilihan n> maka <blok kode program x> yang akan dikerjakan.
Bentuk penulisan (syntax) struktur For…Next :
FOR <pencacah> = <awal> TO <akhir> [STEP <langkah>] <blok kode program>
NEXT <pencacah>
1. <pencacah> adalah variabel (tipe: integer) yang digunakan untuk menyimpan angka pengulangan.
2. <awal> adalah nilai awal dari <pencacah>. 3. <akhir> adalah nilai akhir dari <pencacah>.
4. <langkah> adalah perubahan nilai <pencacah> setiap pengulangan. Sifatnya optional (boleh ditulis ataupun tidak). Bila tidak ditulis maka nilai <langkah> adalah satu.
2. Struktur DO…LOOP.
Bentuk penulisan (syntax) struktur Do…Loop : 1. DO WHILE <kondisi>
<blok kode program> LOOP
<blok kode program> akan diulang selama <kondisi> bernilai TRUE. Pengulangan berhenti bila <kondisi> sudah bernilai FALSE.
2. DO UNTIL <kondisi> <blok kode program>
LOOP
<blok kode program> akan diulang sampai <kondisi> bernilai TRUE. Pengulangan berhenti bila <kondisi> sudah bernilai TRUE.
Penggunaan Kontrol Array
Misalnya, ada 5 buah TextBox di dalam sebuah Form dan akan deprogram dengan cara yang sama, maka akan lebih mudah jika membuat sebuah TextBox sebagai kontrol array dibandingkan bila membuat 5 buah TextBox yang berbeda. Setiap object di dalam kontrol array masingmasing dibedakan dengan nomer indeksnya. Untuk membuat kontrol array (misalnya TextBox) sebanyak 5 buah di dalam sebuah form, lakukan langkah berikut ini :langkah berikut ini :
(1) Buatlah sebuah TextBox di dalam sebuah Form. (2) Aturlah property TextBox tersebut sebagai berikut : Name : txtData
Index : 0 (nol)
Perhatikan : kontrol TextBox-nya akan menjadi object txtData(0) (lihat bagian Object Selector pada Jendela Properties).
(3) Klik object txtData(0) pada Form, kemudian klik tombol Copy pada bagian Toolbar.
(4) Untuk membuat TextBox kedua, klik tombol Paste pada bagian Toolbar. TextBox kedua akan
muncul di pojok kiri Form sebagai object txtData(1), aturlah posisinya di dalam Form.
(5) Lakukan langkah ke-4 di atas sebanyak 4 kali (sesuai dengan jumlah TextBox yang dibutukan).
(6) Di dalam Form akan ada 5 buah TextBox dengan nama yang sama (yaitu txtData) dan masingmasing
Selanjutnya object-object yang dibuat dengan kontrol array bisa diprogram dengan lebih mudah. Misalnya untuk “mengosongkan” object txtData, bisa menggunakan struktur kontrol For…Next :
For i = 0 To 4 txtData(i).Text = “” Next i
Cara ini lebih mudah bila dibandingkan cara “konvensional” berikut :
Text1.Text = “” Text2.Text = “” …
Text4.Text = “”
Contoh program dalam control array adalah kalkulator.\
2.2.6 Menangani Error Jenis-Jenis Error
Dalam proses pembuatan program, bisa saja terjadi error yang menyebabkan program tidak berjalan sebagaimana mestinya. Dilihat dari penyebabnya ada 3 jenis error yang bisa terjadi, yaitu :
1. Syntax error – adalah error yang disebabkan oleh kesalahan menulis kode program. Misalnya : salah menuliskan nama object, property atau methodnya. Error jenis ini relatif mudah ditangani, IDE VB 6 akan memberi tanda kode program mana yang menimbulkan syntax error.
3. Runtime error – adalah error yang disebabkan oleh sistem komputer ketika
melakukan sesuatu. Misalnya : menyimpan file ke disket tetapi disketnya tidak ada. Sistem akan “memberitahu” kepada program informasi error yang terjadi. Informasi error yang penting diantaranya adalah nomer error dan deskripsi error. VB 6 “menyimpan” informasi error tersebut pada object Err. Melalui object Err inilah kita bisa menangani runtime error.
Gambar 2.9 Contoh Runtime Eror
2.2.7 Penggunaan Procedure
Procedure adalah blok kode program yang berisi perintah-perintah untuk mengerjakan tugas tertentu. Bila di dalam kode program yang kita buat ada perintah-perintah untuk melakukan tugas yang sama di beberapa tempat, maka akan lebih baik perintah-perintah tersebut dibuat dalam sebuah procedure. Kemudian, procedure itu bisa di-‘panggil’ bila diperlukan.
Penggunaan procedure sangat menghemat penulisan kode program, karena kode-kode program yang sama dibeberapa tempat cukup dibuat pada satu bagian saja. Selain itu, procedure akan memudahkan perbaikan kode program bila terjadi perubahan atau kesalahan, karena perbaikan cukup dilakukan pada satu bagian saja.
Jenis-jenis Procedure
Pada VB6 ada 4 jenis procedure, yaitu :
Procedure Sub – procedure yang tidak mengembalikan nilai setelah ‘tugas’-nya selesai.
Procedure Function – procedure yang mengembalikan nilai setelah ‘tugas’-nya selesai.
Procedure Event – procedure untuk suatu event pada sebuah object. Digunakan di dalam class module.
Procedure Property – procedure untuk mengubah (let) atau mengambil (get) nilai property pada sebuah object. Digunakan di dalam class module.
Pada bab ini akan dibahas penggunaan procedure sub dan function. Procedure event dan property akan dibahas pada bab selanjutnya.
[Public | Private] Sub <nama_sub> ([<argumen>]) …
<isi procedure> …
End Sub
Sedangkan bentuk penulisan (syntax) procedure function :
[Public | Private] Function <nama_function> ([<argumen>]) As <tipe_data> …
<isi procedure> …
End Function
Pernyataan [Public | Private] menentukan ruang lingkup (scope) procedure. Sebuah procedure dengan scope public bisa digunakan dalam lingkup project. Sedangkan procedure dengan scope private hanya bisa digunakan dalam lingkup form saja.
<nama_sub> atau <nama_function> dibuat sebagai pengenal procedure saat di-‘panggil’. Aturan penamaan sebuah procedure sama dengan aturan penamaan sebuah variabel. Nama sebuah procedure dibuat unik, tidak boleh ada yang sama. <argumen> merupakan serangkaian nilai dan tipe data yang dipakai oleh procedure untuk mengerjakan ‘tugas’-nya. Sebuah procedure bisa saja tidak memakai argumen sama sekali.
Pernyataan As <tipe_data> pada procedure function menentukan tipe data nilai yang akan dikembalikan (return value) setelah ‘tugas’-nya selesai. Untuk menggunakan sebuah procedure, maka procedure tersebut harus di-‘panggil’ pada bagian tertentu dari kode program. Procedure sub di-‘panggil’ dengan pernyataan :
Sedangkan procedure function bisa di-‘panggil’ langsung dengan menyisipkannya di dalam kode program yang memanggilnya. Procedure boleh ditulis dimana saja dalam kode program, tetapi biasanya ditulis dibagian atas atau bawah agar mudah ditangani.
2.2.8 Penanganan Keyboard
Event keyboard merupakan salah satu elemen utama dari interaksi antara user dengan program yang kita buat. Event keyboard terjadi saat user menekan (pressed) ataupun melepas (released) tombol pada keyboard.
Menangani event keyboard dapat dilakukan pada 2 (dua) level, yaitu :
1. Pada level kontrol (low-level) – menangani event keyboard yang terjadi pada sebuah kontrol, misalnya ketika user mengetik pada sebuah TextBox. Tidak semua kontrol mempunyai event keyboard. Hanya kontrol yang bisa mendapatkan focus (dicirikan dengan property TabIndex dan TabStop) saja yang mempunyai event keyboard.
2. Pada level form (hight-level) – menangani event keyboard yang terjadi pada lingkup sebuah form.
Artinya form akan lebih dulu merespon event keyboard daripada kontrol-kontrol yang ada di dalamnya. Agar form selalu lebih dulu merespon event keyboard maka property KeyPreview pada form tersebut harus diset menjadi True.
VB6 menyediakan 3 (tiga) jenis event pada form dan pada beberapa kontrol yang bisa menerima input dari user melalui keyboard, yaitu :
Interchange) adalah kode dari sekumpulan karakter pada tombol keyboard yang terdiri dari : abjad, angka dan beberapa karakter khusus (Enter, Escape, Tab, Backspace).
2. Event KeyDown – terjadi ketika setiap tombol pada keyboard ditekan. 3. Event KeyUp – terjadi ketika setiap tombol pada keyboard dilepas. Perbedaan antara event KeyPress dengan KeyDown adalah :
Event KeyPress hanya berlaku untuk tombol-tombol yang mempunyai kode ASCII saja. Tomboltombol tertentu - seperti : tombol fungsi (F1 s/d F12), tombol panah, tombol keypad – tidak mempunyai kode ASCII. Event KeyPress tidak bisa merespon penekanan tombol yang di kombinasi dengan Shift, Ctrl dan Alt. Bila event KeyPress terjadi maka event tersebut akan mengembalikan nilai dari argumen KeyAscii yaitu kode ASCII dari tombol keyboard yang ditekan. Contoh :
Private Sub Form1_KeyPress (KeyAscii As Integer) MsgBox “Kode ASCII tombol yang ditekan : “ & KeyAscii End Sub
Sedangkan event KeyDown dan KeyUp akan mengembalikan nilai dari argumen KeyCode dan Shift. Argumen KeyCode berisi kode tombol keyboard yang ditekan dan argumen Shift berisi kode penekanan tombol Shift, Ctrl dan Alt. Konstanta nilai untuk kedua argumen tersebut dapat dilihat melalui jendela Object Browser. Contoh :
Private Sub Form1_KeyDown(KeyCode As Integer, Shift As Integer) MsgBox “Kode tombol yang ditekan : “ & KeyCode
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) MsgBox “Kode tombol yang dilepas : “ & KeyCode
2.2.9 Menggunakan Drag-Drop
Drag-Drop merupakan istilah umum di dalam penggunaan mouse untuk menggeser, menyalin atau memindahkan gambar, teks, file, dll. Menggunakan drag-drop akan mempermudah user saat menggunakan sebuah program.
Drag-Drop dengan VB 6.0
VB 6.0 menyediakan beberapa property, method dan event yang berhubungan dengan drag-drop. Operasi drag-drop melibatkan object source dan object target. Setiap object di dalam form bisa menjadi source ataupun target (termasuk form itu sendiri).
Property, method dan event yang berhubungan dengan drag-drop adalah sebagai berikut:
Tabel 2.3 Property, method, dan event yang berhubungan dengan drag-drop
Nilai untuk argumen action adalah:
Tabel 2.4 Nilai argumen action
dan Y menunjukkan posisi koordinat pointer mouse. Sedangkan argumen State menunjukkan status pointer pada saat event DragOver, nilainya terdiri dari: 0 saat pointer masuk ke dalam object target, 1 saat pointer meninggalkan object target dan 2 saat pointer bergerak di dalam object target.
Menggunakan OLE Drag-Drop
OLE (Object Linking and Embedding) Drag-Drop adalah jenis drag-drop yang memungkinkan user untuk menyalin atau memindahkan data dari satu bagian ke bagian yang lain di dalam satu program atau dengan program yang lain. Sebagian besar program-program buatan Microsoft (seperti Microsoft Office) ataupun perusahaan lain (seperti Adobe PhotoShop) mendukung penggunaan OLE drag-drop.
OLE Drag-Drop dengan VB 6.0
Tabel 2.5 Event yang berhubungan dengan Ole Drag-Drop
\
Ada tiga argumen penting pada event-event OLE drag-drop, yaitu: AllowedEffects, Effect dan Data. Argumen AllowedEffects dan Effect digunakan untuk menentukan efek OLE drag-drop yang diperbolehkan atau yang digunakan. Nilai untuk kedua argumen tersebut adalah sebagai berikut:
Tabel 2. 6 Nilai untuk argumen Allowed Effect dan Effect
Object DataObject
Untuk menangani OLE drag-drop secara manual digunakan object DataObject untuk menyimpan data dan format datanya. Property dan method yang dimiliki object DataObject adalah
Tabel 2.7 Property dan method yang dimiliki Data Object