Anda di halaman 1dari 240

BAB I MENGENAL VISUAL BASIC 6.0 I A.

Pendahuluan Bahasa Basic merupakan bahasa populer dan disukai banyak programer karena kemudahannya serta bahasanya yang cukup familier tanpa mengurangi perfomance kinerjanya. Sejak kemunculannya pada tahun 1960, bahasa Basic telah mengalami perkembangan yang pesat sekali. Di tahun 19 0 digunakan oleh Bill !ates dan "aul #llen untuk mengontrol mikrokomputer #lltair dengan menggunakan pita kaset. $emudian bahasa Basic diikuti oleh pengembang% pengembang soft&are lain dengan nama yang berbeda, namun aturan dan bahasa yang digunakan adalah sama. 'unculnya !(%Basic, )basic, )uick Basic dan lain sebagainya semakin mempopulerkan bahasa Basic ini untuk digunakan pada mikrokomputer sebagai bahasa pemrograman untuk membuat aplikasi. B. Materi 1. Mengenal Visual Basic *isual Basic untuk D+S dan (indo&s diperkenalkan pada tahun 1991. *ersi ,.0 dari *isual Basic dikeluarkan pada tahun 199, dan lebih mengalami kemajuan yang pesat dibandingkan dengan -ersi sebelumnya. *isual Basic ,.0 masih menggunakan kode%kode yang bekera dalam 16 bit. $emudian pada akhir tahun 199. dikeluarkan *isual Basic -ersi /.0 yang mendukung proses ,0 bit. "ada akhir tahun 1996 dikeluarkan *isual Basic -ersi ..0 dengan kelebihan yang dapat mendukung control #cti-e1 dan mulai menghapus atau menghilangkan dukungan terhadap proses 16 bit. Dan -ersi yang dipakai dalam modul ini adalah *isual Basic -ersi 6.0 yang dikemas dalam satu paket 'icrosoft *isual Studio 6.0.

*isual Basic 6.0 ialah bahasa pemrograman e-ent%dri-en yang berasal dari BASIC. Event driven artinya program menunggu sampai adanya respons dari pemakai berupa kejadian tertentu, misalnya tombol diklik atau menu dipilih. $etika e-ent terdeteksi, e-ent yang berhubungan akan melakukan aksi sesuai dengan kode yang diberikan. #da tiga edisi yang dikeluarkan 'icrosoft, yaitu2 a. Standard Editi n Standard 3dition sangat merekomendasikan bagi pemula yang ingin mempelajari *isual Basic 6.0 dan mempunyai fasilitas sebagai berikut2 $emampuan aplikasi ,0 bit yang berjalan di 'icrosoft (in 91 dan (in 45 untuk pemula. 5erdiri dari control seperti grid, tab, dan Data Bound. 'emuat 6earn *isual Basic 4o& dan +nline 7elp. 'icrosoft De-eloper 4et&ork 8D berisi dokumentasi.

b. Pr !essi nal Editi n "rofessional 3dition umumnya digunakan oleh para professional yang sudah cukup mendalami *isual Basic 6.0. 5idak terlalu banyak perbedaan dengan Standard 3dition, hanya ada beberapa tambahan, diantaranya2 #cti-e9 8ontrol, termasuk :nternet 8ontrol ::S ;:nternet :nformation Ser-er< Dynamic 75'6 "age Designer c. Enter"rise Editi n 6ebih ditekankan untuk membuat aplikasi yang bersifat server based, tapi program%program aplikasi standard dapat berjalan dengan baik jika menggunakan -ersi ini. =asilitas tambahan antara lain2 #pplication "erformance 31plorer ::S ;:nternet :nformation Ser-er< Support for 'icrosoft 5ransaction Ser-er 0.0 S)6 Debugging *isual 8omponent 'anager *isual Database 5ool

*isual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi (indo&s. *isual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object ;Object Oriented Programming > ++"<. Sa yangnya, *isual Basic sampai saat ini hanya dapat berjalan diatas lingkungan sistem operasi (indo&s. ?ntuk kalangan sistem operasi yang lain seperti 6inu1 misalnya, *isual Basic masih belum bisa berjalan optimal &alaupun saat ini sudah mulai dirintis sebuah frame&ork berbasis .435 agar dapat menjalankan aplikasi *B.435 diatas platform 6inu1. #. Mengenal Integrated $e%el "&ent En%ir n&ent 'I$E( VB 6.0 $epopuleran *isual Basic sebenarnya datang dari lingkungannya yang sering disebut Integrated Development Environment atau :D3. :D3 membantu membangun sebuah aplikasi besar, menulis sebuah program, menjalankan program, dan menghasilkan sebuah executable file. 31ecutable =ile yang dihasilkan oleh *isual Basic bersifat independen, dan karena itu file tersebut dapat dijalankan pada komputer tanpa harus menginstall *isual Basic. "emograman -isual merupakan dimensi baru dalam pembuatan aplikasi karena dapat langsung menggambarkan objek%objek ke layar sebelum dieksekusi. Dalam lingkungan pengembangan -isual, sekarang objek yang anda buat hasilnya langsung tampil di layar. +bjek yang dibuat itu akan sama hasilnya pada saat program dijalankan. Dengan demikian tidak perlu lagi melakukan pengubahan kode program secara manual. Setelah semua objek diletakkan dalam suatu form, maka semua atribut objek tersebut akan disimpan dalam suatu kode program yang dapat langsung dijalankan. a. Men)alan*an I$E ?ntuk membuka program *isual Basic 6.0 ;yang dikemas dalam 'icrosoft *isual Studio 6.0<, ada beberapa cara yang bisa dilakukan diantaranya sebagai berikut2

$lik Start + Pr gra& , Micr s !t Visual Studi 6.0 + Micr s !t Visual Basic 6.0. 'aka pada layar a&al akan muncul tampilan seperti pada gambar 1.1. Dengan membuat short cut pada jendela desktop dan untuk memulainya cukup melakukan double-click pada short cut tersebut. $etika *isual Basic diinstall, file%file *isual Basic ;@.frm, @.bas, @.-pb< di daftarkan pada sistem operasi (indo&, karena itu untuk memulai -isual basic anda dapat melakukan double%click pada file%file tersebut -. Me&ilih .i"e Pr )ect *isual Basic menyediakan banyak jenis modul aplikasi. Beberapa pilihan yang terdapat pada kotak dialog 4e& "roject adalah sebagai berikut 2 Standard 393 #cti-e 393 #cti-e D66 #cti-e9 8ontrol 2 membuat aplikasi *isual Basic Standar 2 membuat aplikasi #cti-e9 2 membuat library #cti-e9 2 membuat kontrol #cti-e9

*B #pplication (iAard 2 membuat aplikasi dengan bantuan (iAard *B (iAard 'anager ::S #pplication Ser-er< D75'6 #pplication 2membuat applikasi D75'6 ;Dynamic 7yperte1t 'ark%up 6anguage< untuk internet. 5ab E/isting untuk menampilkan aplikasi yang sudah ada dan 5ab 0ecent menampilkan aplikasi yang pernah dibuka terakhir kali. ?ntuk memulai program standar pilihlah Standard E1E, kemudian klik pada tombol 2"en. Setelah itu akan muncul &indo& "roject1%'icrosoft *isual Basic seperti pada gambar 1.0. 2 pusat pengelolaan (iAard *isual Basic 2membuat aplikasi ::S ;:nternet :nformation

Gambar ! "otak Dialog #e$ Project Sekarang kita akan mengenal bagian%bagian dari :D3 ; :ntegrated De-elopment 3n-ironment < yang kita gunakan seperti pada gambar 1.0

Gambar !% IDE &isual 'asic 3. 4 &" nen I$E dala& VB 6.0

Bendela :D3 *isual Basic memiliki sejumlah menu, toolbar, dan &indo& seperti yang terlihat pada gambar 1.0. Berikut ini akan dijelaskan kegunaan masing%masing item 2 a. Pr )ect 5ind 6 Bika membuat program aplikasi, akan terdapat jendela project yang berisi semua file yang dibutuhkan untuk menjalankan program aplikasi *isual Basic yang dibuat. "ada jendela project terdapat tiga icon yaitu icon Vie6 C de untuk menampilkan jendela editor, icon Vie6 2-)ect untuk menampilkan bentuk formulir ;=orm< dan icon . ggle 7 lders digunakan untuk menampilkan folder ;tempat penyimpanan file<. "ertama kali ketika menggunakan program *isual Basic maka komponen project yang akan diload, selanjutnya adalah menambah form% form atau membuat modul atau mungkin membuat kode program. Secara lebih sederhana posisi project dalam setiap komponen yang ada adalah seperti terlihat pada gambar diba&ah ini 2

Gambar !( "eterkaitan Project dengan komponen lainn)a -. 7 r& $esigner =orm digunakan ketika akan meletakkan object%object apa saja yang akan digunakan dalam program, object%object yang terdapat dalam toolbo1, diletakkan dan didesain dalam bagian form. =orm sebenarnya adalah suatu objek yang dipakai sebagai tempat bekerja program aplikasi. Secara otomatis akan tersedia form yang baru jika kita membuat program aplikasi baru, yaitu dengan nama 7 r&1. ?mumnya dalam suatu form terdapat garis titik%titik yang disebut dengan Grid.

Gambar !* +orm "osong c. . l- /

5oolbo1 adalah kotak alat yang berisi icon%icon untuk memasukkan objek tertentu ke dalam jendela form. $ita dapat memodifikasi toolbo1, misalnya menambah komponen icon dengan cara melakukan klik kanan pada toolbo1 lalu memilih C &" nents atau Add .a-.

Gambar !, "umpulan Toolbox d. Pr "erties 5ind 6 "roperties digunakan untuk menentukan setting suatu objek. Suatu objek biasanya mempunyai beberapa properti yang dapat diatur langsung dari jendela Pr "erties atau le&at kode program.

Gambar !- Propert) untuk +orm e. C de 5ind 6

Digunakan untuk menulis kode program yang menentukan tingkah laku dari form dan objek%objek yang ada pada aplikasi bersangkutan. $ode program adalah serangkaian tulisan perintah yang akan dilaksanakan jika suatu objek dijalankan. $ode program ini akan mengontrol dan menentukan jalannya suatu objek.

!ambar 1. Suatu "rosedur dalam code &indo& !. M dule 'odule dapat disejajarkan dengan form, tetapi tidak mengandung object. 'odule dapat berisi kode%kode program atau procedure yag dapat digunakan dalam program aplikasi. g. C l r Pallete 5ind 6 Digunakan untuk menentukan &arna dari suatu objek seperti &arna dari objek yang sedang aktif saat ini. h. 7 r& La8 ut 5ind 6 'enunjukan bagaimana peletakan sebuah form akan ditampilkan pada saat dijalankan.

!ambar 1.C Bentuk =orm 6ayout &indo& i. I&&ediate 5ind 6 Digunakan untuk memasukkan ekpresi untuk melihat hasilnya dengan menggunakan perintah DprintE atau FGH. Bendela ini biasanya digunakan bersama &atch &indo& pada saat sebuah program di%debug. Short%cut untuk jendela ini adalah 8trl%!. ). 2-)ect Br 6ser Digunakan untuk menyelusuri e1ternal libraries sehingga anda dapat mempelajari objek%objek dan properti, kejadian ;e-ents<, dan method yang dimilikinya. Short%cut untuk jendela ini adalah =0. *. L cals 5ind 6 #kan aktif hanya pada saat program di jalankan, berisi nilai dari sejumlah -ariabel yang bersifat lokal pada sebuah prosedur atau module. l. 5atch 5ind 6 Digunakan untuk memonitor nilai dari suatu -aribel baik bersifat lokal maupun global.

&.Call Stac* 5ind 6 7anya ditampilkan jika suatu program yang dijalankan dihentikan untuk sementara ;break< dan menekan 8trl%6. 'enunjukan semua prosedur yang menunggu prosedur aktif telah selesai. Bendela ini penting untuk proses debugging untuk mengetahui jalur eksekusi program hingga sampai situasi sekarang

10

9. Menu: . a. Menu

l-ar dan .

lB /

'enu yang akan dibahas secara garis besar, sebab sebagian dari menu berkaitan dengan *isual Basic lanjutan. Berikut ini akan dibahas mengenai menu yang sifatnya umum dan sering dipakai. Menu File berisi perintah antara lain, open untuk membuka suatu project dan save untuk menyimpan project atau form, make digunakan untuk mengkompile project menjadi 31ecutable file. Menu Edit berkaitan dengan perintah%perintah editing seperti cut. cop). paste. find. replace. undo dan redo. Menu View digunakan untuk menampilkan &indo&%&indo& pada :D3 *isual Basic yang telah dijelaskan pada gambar 1.,. Menu Project digunakan untuk menambahkan objek%objek baru seperti pada form, standart module ;bas<, class module, ?ser control module, dll. Menu Format digunakan untuk mengatur posisi dan ukuran satu atau beberapa kontrol. Menu Debug berisi perintah%perintah yang digunakan pada saat program sedang di debug. #plikasi yang dieksekusi tahap demi tahap, nilai dari -ariabel yang bersangkutan ditampilkan, dan menambahkan break point untuk memonitor jalannya program. Menu Run berisi perintah%perintah untuk menjalankan aplikasi yang dibangun.

-. .

l-ar

*isual Basic memiliki sejumlah toolbar. 5oolbar%toolbar tersebut dapat kita letakkan pada posisi sebelah atas pada :D3 *isual Basic atau dibiarkan menjadi &indo& di dalam :D3 *isual Basic. 5oolbar%toolbar tersebut antara lain 2

11

Standard Toolbar berisi tool yang digunakan untuk perintah%perintah seperti membuka atau menyimpan sebuah project.

Gambar !/ 0tandarToolbar Debug Toolbar digunakan berisi perintah seperti yang terdapat pada menu debug, jika toolbar tersebut tidak terdapat pada :D3, anda dapat memilih menu -ie& % toolbars untuk menampilkan toolbar tersebut.

Gambar ! 1 Debug Toolbar Edit Toolbar berfungsi pada saat kita mengedit sebuah kode, menammbahkan break point, dan bookmarks.

Gambar !

Edit Toolbar

Form Editor Toolbar digunakan untuk mengatur posisi control yang ada pada form.

Gambar ! % +orm Editor toolbar

c. .

lB /

Selain 5oolbar, *isual Basic juga mempunyai Bendela 5oolbo1. Bendela ini berisi sejumlah control yang digunakan untuk mendesain antar muka ;2ser Interface< yang akan diletakkan pada =orm. Berikut ini akan dijelaskan masing%masing dari control yang ada pada toolbo1 2

10

Gambar ! ( +orm Editor toolbar Pointer bukan sebuah kontrol, pointer digunakan untuk memilih control yang sudah ada pada sebuah form. Picture Box Control, control ini digunakan untuk menampilkan gambar seperti B'", D:B ;bitmap<, :8+ ;icon<, 8?I ;cursor<, ('= ;metafile<, 3'= ;enhanced metafile<, !:=, and B"3!. Label Control, digunakan sebagai te1t static yang tidak bisa diedit, biasanya digunakan untuk memberi nama pada control yang lain seperti 5e1tBo1. TextBox Control, control yang berisi string dari karakter yang dapat diisi oleh user. Frame Control, digunakan untuk mengelompokkan control%control yang lain. Command Button Control, command button hampir muncul pada setiap form, biasanya digunakan untuk menangkap kejadian berupa mouse click. Chec Box Control, control ini digunakan untuk pilihan yaJtidak atau benarJsalah.

1,

!"tion Button Control, digunakan dalam suatu group, dimana seorang user dapat memilih salah satu saja dalam suatu group. Li#tBox Control, berisi sejumlah item dimana seorang user dapat memilih salah satu atau beberapa item. ComboBox Control, control ini merupakan gabungan antara 5e1tBo1 dan 6istBo1 8ontrol, dimana daftar item hanya akan ditampilkan jika user men%click pada panah keba&ah disebelah kanan 8ontrol tersebut. $#crollBar dan V#crollBar Control, kedua control ini digunakan untuk ScrollBar. Timer Control, merupakan control yang tidak terlihat pada saat program dijalankan. 8ontrol tersebut membangkitkan kejadian pada selang &aktu tertentu. Dri%eLi#t Box& DirLi#t Box& dan FileLi#t Box Control, ketiganya digunakan untuk membuat suatu dialog untuk sistem file. 8ontrol tersebut jarang digunakan sebab ada 8ommon dialog 8ontrol yang akan kita bicarakan nanti sebagai ganti dari ketiga control diatas. Sha"e dan Line 8ontrol, digunakan untuk memperindah tampilan dari suatu form. 'mage Control, control ini mirip dengan "ictureBo18ontrol tetapi digunakan sebagai container control% control yang lain. Data Control, merupakan kunci dari data binding pada *isual Basic. Dengan menggunakan control ini, kita dapat menghubungkan sebuah database pada *isual Basic. !LE Control, digunakan sebagai tempat untuk program ekternal yang ada pada &indo&s seperti spread sheet yang dihasilkan oleh 'icrosoft 31cel. Dengan menggunakan control tersebut kita dapat menampilkan program lain pada sebuah aplikasi. Berikut ini penjelasan dan fungsi dari masing%masing kontrol yang ada pada toolbo1 *isual Basic 6.0. 5abel 1.1 "enjelasan 5oolbo1 *isual Basic Bentu* Na&a 4 ntr l 7ungsi

1/

"ointer

"ictureBo1

6abel

5e1tBo1

=rame

8ommand Button

8heckBo1

+ption Button

"ointer ini bukan kontrol tetapi penunjuk kontrol yang berfungsi untuk memindahkan atau mengubah ukuran kontrol yang ada pada form. ?ntuk menampilkan file gambar ;Bitmaps, :con, !if, B"3! dsb< baik gambar statis maupun aktif. Standar penulisan "icK, misal 2 "icK=oto ?ntuk menampilkanteks, tetapi pemakai tidak bisa beriteraksi dengannya. Standar penulisannya 6blK, 'isal 2 6blKkota ?ntuk menempatkan teks pada form dan pemakai dapat mengedit teks tersebut. Standar penulisannya 51tK, misal 2 51tK#lamat ?ntuk mengelompokkan beberapa kontrol ;!roup< pada suatu form. Standar penulisannya =raK, misal 2 =raKidentitas ?ntuk membuat tombol pelaksana suatu perintah atau tindakan ketika digunakan. Standar penulisannya 8mdK, misal 2 8mdKSimpan ?ntuk membuat kotak check yang dapat memilih satu atau banyak pilihan yang ada. Standar penilisannya 8hkK, misal 2 8hkK7obby ?ntuk memilih dan mengaktifkan satu keadaan dari banyak pilihan yang ada. Standar penulisannya +ptK, misal 2 +ptK#gama

1.

8omboBo1

6istBo1

7scrollBar

*scrollBar

5imer

Dri-e6istBo1

Dir6istBo1

=:le6istBo1 Shape

Sebagai tempat mengetikan pilihan atau memilih suatu pilihan le&at Drop Do&n%6ist. Standar penulisannya 8boK, misal 2 8boK?kuran ?ntuk menampilkan daftar pilihan yang dapat diguung secara horisontal maupun -ertikal. Standar penulisannya 6isK, misal 2 6isKjenis ?ntuk menggulung suatu area kerja dengan jangka lebar pada posisi horisontal. Standar penulisannya 7sbK, misal 2 7sbK&arna ?ntuk menggulung suatu area kerja dengan jangka lebar pada posisi -ertikal. Standar penulisannya *sbK, misal 2 *sbK(arna ?ntuk mengoperasikan &aktu kejadian pada rutin program dalam inter-al yang ditentukan. Standar penulisannya 5mrK, misal 2 5mrK:si ?ntuk menampilkan daftar dri-e komputer yang aktif dan dapat dipilih sebuah dri-e. Standar penulisannya Dr-K, misal2 Dr-Kkerja ?ntuk menampilkan daftar directory dan path pada dri-e kerja terpilih. Standar penulisannya DirK, misal 2 DirKSurat ?ntuk menampilkan daftar file pada directory dan dri-e yang aktif. Standar penulisannya =ilK, misal 2 =ilKgambar ?ntuk membentuk objek dua dimensi seperti

16

6ine

:mage

Data 8ontrol

+63

sLuare, o-al, ellips dan lain%lain. Standar penlisannya Sh"K, misal 2 ShpK6ingkaran ?ntuk menggambar garis lurus dengan banyak -ariasi dengan ketebalan yang bisa diatur. Standar penulisannya 6inK, misal 2 26inKSatu ?ntuk menampilkan gambar icon, bitmap atau metafile pada form. Standar penulisannya :mgK, misal 2 :mgK=oto Sebagai sarana akses data dalam suatu database. =asilitas ini ada dalam konsep D#+. Standar penulisannya DatK, misal 2 DatKmhs ?ntuk menghasilkan proses 6ink dan 3mbed objek antar aplikasi. Standar penulisannya +leK, misal 2 +leKSales

;. Men8i&"an Pr )ect 6angkah%langkah menyimpan2 "ada menu =ile, klik perintah Sa-e "roject #s kemudian akan muncul $otak dialog =ile "roject seperti terlihat pada gambar 1.10. 'elalui kotak dialog tersebut dapat menyimpan program *isual Basic tersebut. "ilih direktori kerja anda misalkan D2M*BM6atihan01 dengan mengklik pada kontrol combo bo1. Simpan form dengan nama =orm1, kemudian klik tombol Sa-e. Simpan "roject dengan nama "roject1, kemudian klik tombol Sa-e.

Gambar ! * 0ave +ile Dialog 6. Men)alan*an dan Menghenti*an Pr gra& 6angkah%langkah menjalankanJmenghentikan program2 $lik tombol 0tart ; < pada Tool'ar atau dengan menekan tombol =. atau juga dapat menggunakan Start pada menu 3un. Sedangkan untuk menghentikan program yang sedang berjalan dapat menggunakan tombol End ; pada menu Iun. < pada 5oolBar atau menggunakan 3nd

C. Latihan . 6etakkan object 6abel pada =orm. #tur property =orm dan 6abel seperti terlihat pada gambar di ba&ah ini 2

1C

Balankan program yang #nda buat, lihat hasilnya 7entikan program kemudian simpan program yang #nda buat ?ntuk menyimpan pilih sa-e #s "roject pada 'enu =ile. "ada saat project tersebut disimpan ada 0 macam file yaitu 2 o =ile "roject ;@.-bp< beri nama pr6at01.-bp o =ile =orm1 ;@.frm< beri nama fr6at01.frm

BAB II ELEMEN,ELEMEN P02G0AM

A. Pendahuluan

19

Sebelum kita bekerja dengan program -isual basic 6.0, perlu dan seluruh pendukung dalam pembuatan program.

kiranya kita

memahami terlebih dahulu tentang data beserta tipe%tipenya, konstanta, -ariable Suatu data sangat terkait erat dengan program, karena data merupakan nilai yang dibutuhkan oleh aplikasi sedangkan program merupakan instruksi yang digunakan untuk mengolah data tersebut. Badi data dan program merupakan unsur%unsur utama dalam membuat suatu program aplikasi yang sempurna ;Subari N Ous&anto, 000C2/1<. $ata A < #: B < 3 Pr gra& C<A=B A"li*asi C<;

!ambar 0.1 keterkaitan Data dan "rogram MA.E0I B. Materi 1. .i"e $ata dala& Visual Basic Data memiliki tipe yang berbeda%beda dan biasanya data dikelompokkan pada kelompok yang sejenis agar tidak terjadi operasi matematika diantara data yang berbeda jenis, contohnya kita tidak bisa menjumlahkan nilai suatu jarak ;$m< dengan 'assa ;$g< karena keduanya memiliki tipe data yang berbeda. Begitu juga dalam suatu program, setiap nilai harus dikelompokkan pada jenis%jenis tertentu yang disebut dengan tipe data. 'icrosoft *isual Basic menyediakan beberapa tipe data seperti :nteger, 6ong, Single, Double, 8urrency, String, Byte, Boolean, Date, +bject dan *ariant.

5abel 0.1 5ipe Data dalam *isual Basic

00

4eterangan > :nteger, 6ong Single, Double 8urrency String Boolean Date +bject *ariant 2 tipe data untuk angka bulat 2 tipe data untuk angka pecahanJdesimal 2 tipe data untuk angka mata uang 2 tipe data untuk teks 2 tipe data logika ; 5rueJ=alse< 2 tipe data &aktuJtangggal 2 tipe data untuk sebuah objek misalnya gambar 2 tipe data -ariant

#. Varia-el dala& Visual Basic *ariabel digunakan untuk menyimpan nilai atau data yang dimiliki program aplikasi yang kita buat. 4ilai yang ditampung atau disimpan oleh suatu -ariabel dapat berubah selama program berjalan. 'isalnya kita bisa menyimpan nilai ujian mid di -ariabel # dan nilai ujian akhir di -ariabel B dan setiap mahasis&a nilainya pasti berbeda a. $e*larasi Varia-el Deklarasi -ariabel harus diletakkan sebelum baris%baris perintah yang menggunakan -ariabel tersebut. #da dua cara dalam pendeklarasian -ariabel, yaitu $e*larasi E*s"lisit dan $e*larasi I&"lisit. Deklarasi 3ksplisit dilakukan dengan cara menuliskan sebuah kata kunci diikuti nama -ariabel serta tipe datanya. #turan penulisan deklarasi -ariabel dengan cara eksplisit sebagai berikut 2 ?*ata*unci@ ?na&a%aria-el@ As ?.i"e$ata@ 5abel 0.0 $ata kunci deklarasi *ariabel secara eksplisit 4ata 4unci Static Penggunaan Berlaku pada le-el prosedur

01

Dim "ri-ate "ublic !lobal

Berlaku pada le-el prosedur dan modul Berlaku pada le-el modulJform Berlaku pada le-el modul dan aplikasi Berlaku pada le-el modul dan aplikasi

8ontoh deklarasi -ariabel secara eksplisit adalah 2


Dim Nama As String Private Nilai As Integer Static Jumlah As Integer Public Alamat As Variant

Deklarasi :mplisit dilakukan tanpa menggunakan kata kunci. "ada deklarasi implisit, sebuah -ariabel langsung digunakan disertai sebuah karakter khusus yang menandakan tipe data -ariabel tersebut. 5abel 0., Beberapa karakter untuk deklarasi *ariabel :mplisit .i"e $ata :nteger 6ong Single Double 8urrency String 8ontoh deklarasi secara implisit 2 Judul$ = "Cepat %arga& = '($$$ ahir Visual !asic "#$" 4ara*ter P N Q R S T

Sebaiknya setiap -ariabel yang digunakan dalam kode program dideklarasikan terlebih dahulu, agar alur jalannya program lebih terkontrol dan mudah dipahami. -. Aturan Pena&aan Varia-el *isual Basic 6.0 tidak memperhatikan penulisan huruf besar atau kecil. *ariabel dengan nama Ala&at akan dianggap sama dengan ALAMA. atau aLaMAt Beberapa aturan yang digunakan dalam penamaan -ariabel adalah sebagai berikut 2 7arus unik, tidak boleh ada -ariabel dengan nama sama pada satu ruang lingkup yang sama.

00

5idak boleh lebih dari 0.. karakter, tetapi hanya /0 karakter pertama yang dianggap sebagai nama -ariabel. $arakter sisanya diabaikan. 5idak boleh menggunakan spasi, tanda U,%,@,J,V,W,2,>,R,koma dll 7arus dimulai dari huruf, bukan angka atau karakter lainnya 5idak boleh menggunakan reser-ed &ord milik *isual Basic 6.0 c. 0uang Ling*u" Varia-el #da tiga le-el ruang lingkup -ariabel, yaitu 2 le%el l *al, le%el ! r&A& dul: dan le%el gl -al. *ariabel le%el l *al adalah -ariabel yang hanya dikenali dan dapat digunakan dalam prosedur tempat -ariabel tersebut dideklarasikan. "rosedur di bagian lain tidak dapat mengkses -ariabel tersebut. *ariabel ini dideklarasikan menggunakan perintah $i&: Pri%ate, dan Static. *ariabel dengan le%el ! r&A& dul dideklarasikan dibagian general declarati ns dalam jendela kode program formJmodul. 4ilai -ariabel ini dapat dikenali dan dipakai pada semua prosedur yang ada dalam formJmodul tersebut. Deklarasi -ariabel ini juga menggunakan pernyataan $i&. "erbedaan dengan -ariabel l *al adalah tempat dekalrasi -ariabel tersebut. 8ontoh deklarasi -ariabel le-el formJmodul2 2

Gambar %!% Deklarasi variabel level form4modul *ariabel le%el gl -al ;aplikasi< dideklarasikan di bagian general declarati ns dalam jendela kode program formJmodul menggunakan pernyataan Pu-lic atau Gl -al. *ariabel ini dapat dipanggil dan dipakai oleh semua formJmodul dalam program aplikasi yang kita buat,

0,

dan juga dapat dipanggil dan dipakai oleh seluruh prosedur yang ada dalam formJmodul tersebut. 8ontoh deklarasi -ariabel le-el global adalah sebagai berikut2

Gambar %!( Deklarasi variabel level global 5aplikasi6 3. 4 nstanta dala& Visual Basic $onstanta adalah sejenis -ariabel yang nilainya tetap dan tidak dapat diubah selama program berjalan. #da jua jenis konstanta yaitu konstanta intrinsik dan konstanta yang dibuat pemrogram. $onstanta intrinsik adalah konstanta yang sudah tersedia secara otomtais dalam *isual Basic 6.0. 8ontoh konstanta intrinsik adalah -bOes,-b'odal, dan lain%lain. "emrogram juga dapat membuat sebuah konstanta sendiri dengan cara mendeklarasikannya terlebih dahulu. a. $e*larasi 4 nstanta #turan penulisan deklarasi konstanta adalah sbb2 B?4ata4unci@ C nst ?Na&a4 nstanta@ BAs ?.i"e$ata@C < ?nilai@ 4ata 4unci Na&a 4 nstanta .i"e $ata 2 "ilihan kata kunci yang dapat digunakan pada deklarasi konstanta adalah "ri-ate dan "ublic 2 4ama konstanta yang dideklarasikan 2 5ipe data dari konstanta tersebut

Bagian yang diberi tanda kurung siku XYX dan XZX pada aturan penulisan di atas berarti boleh dituliskan, dan boleh juga tidak dituliskan. 8ontoh deklarasi konstanta 2
Const Nama)saha = "CV# *r+n Cellular" Public Const Jumlah = ($$$$$ Private Const ,otal = ( Const Nama As String = "D-i Apri Set+orini"

-. 0uang Ling*u" 4 nstanta

0/

$onsep ruang lingkup konstanta hampir sama dengan konsep ruang lingkup -ariabel. Oaitu terdiri dari le%el l *al: le%el ! r&A& dul dan le%el gl -al. $etiga le-el tersebut hanya dibedakan berdasarkan kata kunci yang digunakan atau letak deklarasi konstanta. 9. 2"erat r +perator adalah suatu tanda yang digunakan untuk menghubungkan satu -ariabel atau konstanta dengan -ariabel atau konstanta lain dengan tujuan melakukan berbagai manipulasi dan pengolahan data. "ada 's. *isual Basic 6.0 terdapat bermacam%macam operator 2 a. 2"erat r Penugasan 'assign&ent( +perator penugasan ditimbulkan dengan tanda sama dengan ;>< dan berfungsi untuk memasukkan suatu data ke dalam suatu -ariabel.
A = .'8ontoh 2 A = A/. ,e0t.#te0t = 1S, I2 Duta !angsa3

-. 2"erat r Arit&ati*a +perator aritmatika digunakan untuk melakukan operasi aritmatika. +perator aritmatika mempunyai hirarki paling tinggi dibanding operator pembanding dan operator logika. "enulisan operator aritmatika dengan hirarki dari paling tinggi ke paling rendah, sebagai berikut 2 2"erat r [ % @,J M 'od U, % U, N 8ontoh 2 ! = '( A = 4'5678(9 5abel 0./ +perator #ritmatika 2"erasi "emangkatan 5anda 4egatif "erkalian N "embagian "embagian :nteger 'odulus ;Sisa hasil bagi< "enambahan dan "engurangan "enggabungan String od 6

c. 2"erat r Pe&-anding

0.

+perator pembanding digunakan untuk membandingkan suatu data ;ekspresi< dengan data ;ekspresi< lain dan menghasilkan nilai logika ;boolean< Benar atau Salah. 5entu saja antara kedua data yang dibandingkan harus mempunyai tipe data yang sama. Bentuk dari operator relasionalJpembanding seperti pada tabel berikut 2 5abel 0.. +perator "embanding 2"erat r > VW V,W V> , W> 6ike :s A :; ! 9 2 !;C9 C:A 8ontoh d. 2"erat r L gi*a +perator logika digunakan untuk mengekspresikan satu atau lebih data ;ekspresi< logika ;boolean< yang menghasilkan data logika baru. 5abel operator logika dengan hierarki dari atas ke ba&ah adalah sebagai berikut 2 2"erasi Sama dengan 5idak sama dengan 6ebih kecil, lebih besar, lebih kecil sama dengan, lebih besar sama dengan 'empunyai ciri yang sesuai Sama referensi objek

5abel 0.6 +perator 6ogika 2"erat r 4eterangan 4ot 5idak #nd, +r,9or Dan, #tau, 31clusi-e +r 3L3Lui-alen :mp :mplikasi 8ontoh 2 < ; ( And < : .$9 < = = Or 0 = ( dst

;. 4 ntr l Pr gra& #da banyak perintah di *isual Basic 6.0. yang digunakan untuk mengontrol jalannya program yang akan dibuat. =ungsi kontrol program ini dibentuk

06

dengan logika pemograman yang nantinya akan berguna sebagai -alidasi terhadap data%data yang masuk maupun yang keluar dari program tersebut. a. Penca-angan 2n Err r "encabangan ini dipakai untuk penangan kesalahan ;error< dalam program. Bentuk penulisannya ada tiga macam, yaitu 2 +n 3rror !o5o VbarisW, +n 3rror Iesume 4e1t, +n 3rror !o5o 0 2n Err r G . ?-aris@ 'enyebabkan penanganan error aktif, sehingga jika terjadi kesalahan program maka kesalahan yang terjadi tersebut akan menunjuk ke VbarisW untuk proses selanjutnya. 8ontoh Private Sub2 Command.>Clic?47 *n @rror Ao,o Pesan ######## ######## PesanB sg!o0 "Ada 2esalahan Program" @nd Sub $esalahan apapun yang terjadi, baik kesalahan dalam program maupun kesalahan dalam logika pemograman, maka kesalahan tersebut tidak akan terlihat dimana letak kesalahannya karena kesalahan apapun yang muncul maka kesalahan tersebut akan memunculkan tulisan pada baris V"esanW 2n Err r 0esu&e Ne/t 'enyebabkan jika terjadi kesalahan, program akan melanjutkan ke perintah yang mengikuti ;diba&ah< perintah yang salah. 2 Private8ontoh Sub Command.>Clic?47 *n @rror Cesume Ne0t sg!o0 "Pesan di?erDa?an setelah mengabai?an @rror" @nd Sub 2n Err r G . 0 'enyebakan perangkap kesalahan yang sebelumnya dipasang menjadi tidak aktif ;membatalkan penanganan kesalahan<.
Private Sub Command.>Clic?47 *n @rror Ao,o $ sg!o0 "Ji?a @rror lanDut?an ?e baris beri?utn+a" @nd Sub

8ontoh 2

-. State&ent End Statement 3nd dipakai untuk memaksa kontrol program berhenti dari suatu procedure atau suatu blok program. Beberapa contoh bentuk pernyataan 3nd.. adalah sebagai berikut 2 End Statement 3nd biasanya digunakan untuk mengakhiri penggunaan suatu program, misalkan pada program terdapat suatu tombol command button bercaption D$eluarE maka isi untuk perintah command button kelaur tersebut adalah dengan D3ndE. 8ontoh Private sub 2cmd@0it>clic?47 @nd @nd sub End 7uncti n Bika dalam program menggunakan function, terutama function yang akan dibentuk sendiri, maka diakhiri penulisan function tersebut harus ditutup dengan end function. 8ontoh 2 Private Eunction ,ambah4a9b as Integer7 as Integer
,ambah = a / b @nd Eunction

End i! 3kpresi End I! digunakan untuk mengakhiri penggunaan ekpresi I!.. .henD ElseD:setiap perintah :f harus ditutup atau diakhiri dengan 3nd :f 8ontoh Private sub 2 cmd*2>clic?47 IF ,e0t.#,e0t = . then sgbo0 1Nilain+a Satu3 @lse sgbo0 1 Nilain+a selain Satu3 @nd IF @nd sub

0C

3kspresi :f di atas akan menunjukkan jika nilai yang terdapat dalam object 5e1tBo1 bernilai 1, maka akan muncul tulisan pesan D4ilainya SatuE selain itu muncul tulisan D4ilainya selain SatuE. End Pr "ert8 3nd property biasanya digunakan ketika akan bekerja dengan menggunakan class. End Select Salah satu pernyataan pencabangan yang bersyarat adalah menggunakan Select 8ase, diakhir pernyataan tersebut jangan lupa dituliskan 3nd Select yang menyatakan akhir dari pencabangan tersebut. 2 Select 8ontoh Case ,e0t.#,e0t Case "." sg!o0 "Data anda satu" Case "'" sg!o0 "Data anda dua" @nd Select End SuSetiap objek yang diletakkan dalam sebuah form akan membentuk suatu modul atau procedure sendiri, proses selanjutnya tergantung dari e-ent yang akan dilakukan dengan objek tersebut. Diakhir pendeklarasian sebuah modul harus ditutupi dengan 3nd Sub.
"ri-ate Sub 8ommand1K8lick;< 8ontoh 2 \\ \\ \\ 3nd Sub

End .8"e "endeklarasian 3nd 5ype digunakan jika mendeklarasikan sekumpulan data bertipe record data, dan disetiap akhir pendeklarasian tersebut harus diakhiri dengan 3nd 5ype. 2 ,+pe 8ontoh DA,ASISGA NI as string NA A as string Alamat as string @nd ,+pe End 5ith

09

"endeklarasian 3nd (ith digunakan jika kita ingin mengakhiri penggunaan &ith dia&al sebuah pendeklarasian, perintah &ith dan end &ith dapat digunakan untuk menyingkat suatu penulisan objek yang berulang%ulang. 8ontoh berikut menyatakan object te1tbo1 yang digunakan dan beberapa atribut yang digunakan dalam object tersebut.
Gith 8ontoh ,e0t. 2 #,e0t = 1Sani3 #Eont = Arial #Eont!old = ,rue #EontSiHe = .( @nd Gith

c. 4 &entar Pr gra& $omentar dapat ditambahkan pada suatu baris program dengan menuliskan tanda petik satu ; F < didepan statement yang ingin dinyatakan sebagai suatu komentar, sifat komentar ini tidak akan dikerjakan dan hanya sebagai komentar bagi program dan -isual basic tidak akan menganggapnyanya sebagai kode sehingga tidak akan dijalankan. 2 Private8ontoh Sub Command.>clic?47 A = = ISet nilai A = = ! = ( ISet Nilai ! = ( C = A / ! INilai A dan ! a?an ditambah?an Idan disimpan dalam variabel C# @nd Sub

6. C nt h Pr gra& a. $ita akan mencoba membuat program perkalian dua bilangan. 6etakkan beberapa object yang ada dalam form, atur beberapa setting property yang ada seperti terlihat pada gambar di ba&ah ini2

,0

4 ntr l =orm 6abel 6abel 5e1t 5e1t 5e1t 8ommand 8ommand 8ommand

Pr "ert8 4ame 8aption 4ame 8aption 4ame 8aption 4ame 5e1t 4ame 5e1t 4ame 5e1t 4ame 8aption 4ame 8aption 4ame 8aption

Setting Value fr$ali "erkalian lblBudul "erkalian Dua Bilangan lbl$ali 9 t1tBil1 Blank t1tBil0 Blank t1t7asil Blank cmd7itung N7itung cmdBersih NBersih cmd$eluar N$eluar

Private Sub cmdBersih_Click() I engosong?an isi ,e0t!o0 $etikkan kode program seperti berikut2 t0t!il.#,e0t = "" t0t!il'#,e0t = "" t0t%asil#,e0t = "" End Sub Private Sub cmdHitung_Click() IDe?larasi Variabel Jo?al Dim a As Single Dim b As Single %asil As Single a = t0t!il.#,e0t b = t0t!il'#,e0t %asil = a 8 b t0t%asil#,e0t = %asil End Sub Private Sub cmdKeluar_Click() ,1 I enga?hiri Program @nd End Sub

Simpan program yang #nda buat dengan nama 2 o =ile "roject ;@.-bp< beri nama pr8oba01.-bp o =ile =orm1 ;@.frm< beri nama fr8oba01.frm b. 'embuat program untuk memilih font color dan font style. 6etakkan beberapa object yang ada dalam form, atur beberapa setting property yang ada seperti terlihat pada gambar di ba&ah ini2

4 ntr l Pr "ert8 =orm 6abel +ption +ption +ption 4ame 8aption 4ame 8aption 4ame 8aption 4ame 8aption 4ame 8aption

Setting Value fr=ont =ont 8olor N =ont Style lbl5eks 'icrosoft *isual Basic 6.0 optIed Ied opt!reen !reen optBlue Blue

4 ntr l 8heck 8heck 8heck 8heck =rame =rame

Pr "ert8 4ame 8aption 4ame 8aption 4ame 8aption 4ame 8aption 8aption 8aption

Setting Value chkBold Bold chk:talic :talic chk?nder ?nderline chkStrike Strikeout =ont 8olor =ont Style

,0

+ption

4ame 8aption

optOello& Oello&

8omman d

4ame 8aption

cmd31it N31it

$etikkan kode program seperti berikut2


Private Sub o t!ed_Click() K embuat te?s be-arna merah lbl,e?s#EoreColor = vbCed End Sub Private Sub chkBold_Click() K embuat te?s ,ebal IF ch?!old#Value = . ,hen lbl,e?s#Eont!old = ,rue @lse lbl,e?s#Eont!old = Ealse @nd IF End Sub K)ntu? pilihan Font color +ang Klain sila?an Anda coba membuat K?ode programn+a K)ntu? pilihan Font st+le +ang Klain sila?an Anda buat ?ode Kprogramn+a

Simpan program yang #nda buat dengan nama2 a. =ile "roject ;@.-bp< beri nama pr8oba00.-bp b. =ile =orm1 ;@.frm< beri nama fr8oba00.frm S2AL LA.IEAN

C. Latihan Buat program penghitungan dengan menggunakan beberapa operator. #tur tampilan dan propertinya seperti di ba&ah ini2

,,

Simpan program yang #nda buat dengan nama2 o =ile "roject ;@.-bp< beri nama pr6at00.-bp o =ile =orm1 ;@.frm< beri nama fr6at00.frm

BAB III P02PE0.F: ME.E2$ $AN EVEN. #. Pendahuluan53I: "emograman *isual Basic menggunakan suatu teknik pemrograman ++" ;+bject +riented "rogramming< yaitu suatu teknik pemrograman yang memodelkan program sebagai sekumpulan objek yang saling memiliki hubungan. Setiap kontrol ;objek< memiliki properti, method dan e-ent yang berbeda%beda.

,/

B. Materi 1. a. Pr "erti "roperti adalah atribut%atribut yang melekat pada sebuah kontrol ;objek< yang biasanya merupakan karakteristik penampilannya seperti &arna, jenis huruf, ukuran dan sebagainya "roperti sebuah kontrol ;objek< dapat diubah pada saat memprogram ;menggunakan jendela properti< atau pada saat program dijalankan ;menggunakan kode%kode program pada jendela kode<. 8ontoh 2 8ommand1.Ca"ti n>X+$X -. Meth d 'ethod adalah aksi atau perbuatan yang bisa dimiliki oleh kontrol ;objek< sehingga user ;programmer< dapat memakainya untuk memanipulasi sesuatu. 'ethod tergantung dari instruksi yang diberikan oleh programmer melalui penulisan kode. 8ontoh 2 8ommand1.Clic* c. E%ent 3-ent adalah kejadian atau segala sesuatu yang dapat dialami oleh sebuah objek. Suatu kontrol ;objek< dapat memiliki banyak e-ent. 8ontoh 2 8ommand1GClic*' ( Me&aha&i Pr "ert8: Meth d dan E%ent

Secara ringkasnya dapat dijelaskan sebagai berikut 2 Pr "ert8 2 karakteristik yang dimiliki object Meth d 2 aksi yang dapat dilakukan oleh object E%ent 2 kejadian yang dapat dialami oleh object

Sebagai ilustrasi anda dapat menganggap sebuah mobil sebagai obyek yang memiliki property, method dan e-ent. "erhatikan gambar berikut 2

,.

Gambar (! Ilustrasi untuk mengambarkan Propert). 7ethod dan Event #. Pr "ert8 =orm merupakan objek utama dalam permrograman *isual Basic, sebab form merupakan tempat dimana objek%objek lain seperti kontrol diletakkan seperti terlihat pada gambar ,.0. =orm dan $ontrol merupakan objek%objek yang ada dalam *isual Basic yang memiliki properti, metode dan dapat menangkap suatu kejadian ;event<. "ada bagian ini akan dibahas tentang properti, metode ;methods<, dan kejadian yang berhubungan dengan objek%objek tersebut.

,6

Gambar (!% Tampilan +orm dari program Perkalian *isual Basic mendukung properti%properti yang hanya dimiliki oleh sejumlah objek tertentu saja. #kan tetapi ada beberapa properti%properti yang sifatnya umum yaitu properti%properti ini hampir dimiliki oleh semua objek yang ada dalam *isual Basic. "roperti%properti umum tersebut antara lain properti name. top. left. height. $eight. +oreground. 'ackground. +ont. 8aption. Text. Enable. &isible. Tab0top. TabIndex. dan properti%properti umum lainnya.

Gambar (!( 9endela Properties untuk +orm a. Pr "erti Na&e Semua objek dalam *isual Basic mempunyai properti #ame. "roperti #ame digunakan untuk memberikan identitas pada objek yang dipakai. Secara default sebuah form mempunyai properti #ame D=orm1E, D=orm0E, dan seterusnya, lihat gambar ,.,. Dengan mengubah nilai properti ini dengan nama lebih deskripsi akan memudahkan kita untuk

mengingat nama dari objek%objek yang dipakai dalam project yang bersangkutan. Seorang programmer *isual Basic biasanya menggunakan prefik untuk penamaan sebuah kontrol atau form. "enggunaan prefik memudahkan seorang programer untuk mengetahui kontrol yang bersangkutan. Dengan kata lain penggunaan prefik adalah untuk membedakan sebuah kontrol dengan kontrol yang lain seperti nama frm:atihan untuk sebuah kontrol form dan lbl#ama untuk sebuah kontrol label. 5abel ,.1 berisi daftar penamaan prefik yang biasanya digunakan dalam *isual Basic. 5abel ,.1 Daftar "enamaan "refik Pre!i* cbo chk cmd dat dir drfil fra fr grd hsb img lbl Na&a Ele&en 8ombo Bo1 8heck Bo1 8ommand Data Directory 6ist Bo1 Dri-e 6ist Bo1 =ile 6ist Bo1 =rame =orm !rid 7oriAontal ScrollBar :mage 6abel Pre!i* lin lst mnu mod ole opt pic res shp tmr t1t typ -sb Na&a Ele&en 6ine 6ist Bo1 'enu 'odule +63 +ption "icture Iesource Shape 5imer 5e1t Bo1 ?ser%Defined Data 5ype *ertical Scrool Bar

-. Pr "erti Le!t: . ": 5idth: Eeight Semua objek%objek yang terlihat ; visible< memiliki properti :eft. Top. ;idth. dan <eight. "roperti%properti ini digunakan untuk menempatkan posisi dan ukuran suatu objek. 4ilai dari properti ini selalu relatif terhadap objek kontainernya ;tempat dimana objek tersebut menempel< dan satuan ukuran default yang digunakan adalah t$ips.

,C

"roperti%properti tersebut dapat diubah melalui jendela properti ;properties $indo$< seperti terlihat pada gambar ,., dengan memasukkan suatu nilai numerik pada saat &aktu merancang atau dengan memindahkan atau mengubah ukuran form secara interaktif dengan menggunakan mouse. Selain itu pengubahan properti juga dapat dilakukan pada saat program dijalankan ;run time< melalui kode seperti contoh diba&ah ini 2
I embuat lebar FrmCoba menDadi ' ?ali lebar semula FrmCoba#Gidth = FrmCoba#Gidth 8 ' I embuat tinggi FrmCoba menDadi = ?ali tinggi semula FrmCoba#%eight = FrmCoba#%eight 8 = I eleta??an FrmCoba di sudut ?iri atas FrmCoba#JeFt = $ FrmCoba#,op = $

5idak semua kontrol dalam *isual Basic memiliki properti 6eft, 5op, (idth, dan 7eight. Sebagai contoh 5imer tidak memiliki properti ] properti tersebut. c. Pr "erti 7 reC l r dan Bac*C l r 7ampir semua kontrol%kontrol *isual Basic juga mendukung kedua properti +ore8olor dan 'ack8olor, lihat gambar ,./. "roperti +ore8olort digunakan untuk mempengaruhi &arna tulisan dan properti 'ack8olor digunakan untuk memilih &arna dasar dari objek. Dalam kasus tertentu, properti tersebut tergantung pada properti lain. Sebagai contoh mengganti &arna dasar ;background< tidak akan berpengaruh jika nilai dari properti backst)le bernilai 1-Transparant.

,9

Gambar (!* Properti +ore8olor #da 0 macam &arna yang dapat digunakan pada properti 'ack8olor dan +ore8olor yaitu Standart 8olor ;tab System< dan 8ustom 8olor ;tab "alette<. $edua jenis &arna tersebut dapat dipilih dengan menggunakan tab, namun sebaiknya digunakan &arna standar ;standart color<, kecuali ada alasan yang kuat untuk menggunakan &arna khusus ;custom color<. #lasan penggunaan &arna standar adalah &arna ini akan bekerja dengan baik pada semua komputer dengan Sistem +perasi ;indo$s. *isual Basic telah menyediakan sejumlah konstanta simbolik yang menyatakan sebuah &arna. $onstanta tersebut dapat dilihat pada tabel ,.0 atau dapat juga dilihat pada jendela Object 'ro$ser. #da beberapa cara untuk mengisi nilai properti 'ack8olor dan +ore8olor melalui kode2
I engatur propert+ EoreColor dan !ac?Color IPada lblCoba lblCoba#EoreColor = vb%ighlight,e0t lblCoba#!ac?Color = vb%ighlight

"roperti ini juga dapat diisi dengan menggunakan konstanta simbol yang lain seperti vb'lack, vb'lue, vb8)an, vbGreen, vb7agenta, vb3ed, vb;hite, and vb=ello$ atau menggunakan nilai konstanta desimalJheksadesimal. ^$etiga kode program di ba&ah ini mempunyai hasil sama t1t8oba.Back8olor > -b8yan t1t8oba.Back8olor > 16 6960 t1t8oba.Back8olor > N7====00

/0

#tau dapat pula digunakan fungsi I!B yang membangun &arna berdasarkan &arna 'erah ;I<, 7ijau ;!<. dan Biru;B< ;Ied, !reen, dan Blue< atau fungsi )B8olor yang merupakan fungsi dari )uick Basic. 5abel ,.0 4ilai $onstanta (arna
Konstatan vb3DDKShadow vb3Dface vb3Dhighlight vb3Dlight vb3Dshadow vb(ctive)order vb(ctive*itle)ar vb(ctive*itle)ar*e,t vb(""lication0orks"ace vb)'tton ace vb)'ttonShadow vb)'tton*e,t vbDeskto" vb6ra#*e,t vbHighlight vbHighlight*e,t vb3nactive)order vb3nactive&a"tion*e,t vb3nactive*itle)ar vb3nactive*itle)ar*e,t vb3nfo)ackgro'nd vb3nfo*e,t vb2en')ar vb2en'*e,t vbScroll)ars vb*itle)ar*e,t vb0indow)ackgro'nd vb0indow rame vb0indow*e,t Nilai Heksadesimal &H80000015 &H8000000 &H8000001$ &H8000001% &H80000010 &H8000000( &H8000000+ &H8000000&H8000000& &H8000000 &H80000010 &H8000001+ &H80000001 &H80000011 &H8000000D &H80000005 &H8000000) &H80000013 &H80000003 &H80000013 &H80000018 &H80000017 &H8000000$ &H80000007 &H80000000 &H8000000&H80000005 &H8000000% &H80000008 Keterangan Darkest shadow Dark shadow color for 3!D dis"la# elements Highlight color for 3!D dis"la# elements Second lightest of the 3!D colors after vb3Dhighlight &olor of a'tomatic window shadows (ctive window border color (ctive window ca"tion color *e,t color in active ca"tion. si/e bo,. scroll bar arrow bo, )ackgro'nd color of m'lti"le!doc'ment interface 12D34 a""lications ace shading on command b'ttons 5dge shading on command b'ttons *e,t color on "'sh b'ttons Deskto" color 6ra#ed 1disabled4 te,t )ackgro'nd color of items selected in a control *e,t color of items selected in a control 3nactive window border color &olor of te,t in an inactive ca"tion 3nactive window ca"tion color *e,t color in inactive window ca"tion. si/e bo,. scroll bar arrow bo, )ackgro'nd color of *ool*i"s &olor of te,t in *ool*i"s 2en' backgro'nd color *e,t color in men's Scroll bar gra# area color *e,t color in active ca"tion. si/e bo,. scroll bar arrow bo, 0indow backgro'nd color 0indow frame color *e,t color in windows

d. Pr "erti 7 nt "ada &aktu merancang, "roperti =ont dapat diisi dengan menggunakan +ont Dialog seperti terlihat pada gambar ,...

/1

Gambar (!, "otak dialog +ont 8ara lain untuk mengubah nilai properti bisa dilakukan melalui kode program, seperti contoh di ba&ah ini2
t0tCoba#Eont#Name = t0tCoba#Eont#SiHe = t0tCoba#Eont#!old = t0tCoba#Eont#Italic "S+lFaen" .' ,rue = ,rue

=ont merupakan objek gabungan ;8ompound Object< yang masih mempunyai propeti%properti yang terpisah yaitu +ont #ame. +ont 0t)le. +ont 0i>e dan Effects e. Pr "erti Ca"ti n dan .e/t "roperti 8aption digunakan untuk menentukan kata atau kalimat yang ditampilkan pada sebuah kontrol, seperti judul dari +orm dan kalimat pada sebuah :abel. Sedangkan "roperti Text sama seperti properti 8aption hanya saja kalimat dalam properti 5e1t dapat diganti. 5idak ada kontrol yang mendukung kedua properti ini secara bersamaan. $ontrol :abel, 8ommand'utton, 8heck'ox, Option'utton, Data, dan +rame mendukung properti 8aption sedangkan kontrol Text'ox, :ist'ox, dan 8ombo'ox mendukung properti Text. $husus untuk properti 8aption mendukung penggunaan karakter ampersand ;N< untuk menentukan hotke) atau shortcut dari kontrol.
I2edua ?ode program di ba-ah ini mempun+ai hasil sama t0tCoba#,e0t = ,e0t.#,e0t t0tCoba = ,e0t.

!. Pr "erti Ena-led dan Visi-le Secara default nilai dari properti Enabled dan&isible adalah 5rue, tetapi mungkin pada saat program dijalankan mungkin sebuah kontrol ingin disembunyikan ;hide< atau ditampilkan dengan keadaan tidak bisa
I embuat t0tCoba disembun+i?an t0tCoba#Visible = Ealse I embuat t0tCoba tida? bisa diguna?an t0tCoba#@nabled = Ealse

/0

digunakan ;disabled<. 4ilai properti Enable dan &isible dapat diubah melalui kode program seperti terlihat pada kotak berikut ini.

() Met de U&u& 'Common Method#* "ada bagian ini akan dijelaskan metode%metode yang sering digunakan antara lain 'etode 7ove, 3efresh, 0et+ocus. a. Met de Mo%e Bika suatu kontrol mempunyai properti :eft, Top, ;idth, dan <eight, maka kontrol tersebut pasti juga mendukung metode move. 'etode ini digunakan untuk mengubah properti :eft, Top, ;idth, dan <eight dengan menggunakan sebuah operasi tunggal. seperti terlihat pada kotak diba&ah ini.
IJebar Eorm menDadi dua ?ali lipat dan Iposisin+a berada pada poDo? ?iri atas# IS+nta0n+a B FrmCoba# ove $9 $9 FrmCoba#Gidth 8 '9 FrmCoba#Gidth 8 '

-. Met de Re+re#h 'etode 3efresh merupakan metode yang digunakan untuk menggambar kembali suatu kontrol. "ada keadaan normal biasanya kita tidak perlu memanggil metode ini, sebab *isual Basic secara otomatis akan menyegarkan kembali penampilan suatu kontrol ketika sudah diubah. 'etode ini digunakan jika suatu kontrol ingin segera disegarkan kembali tanpa menunggu proses lain yang masih harus dilakukan. "enggunaan metode tersebut dalam kode program dapat dilihat pada kotak diba&ah ini.

I en+egar?an ?embali DataArid 4?ontrol di V! +ang Idiguna?an untu? menampil?an data +ang disimpan di Idatabase7
grdCoba#CeFresh

/,

c. Met de SetFocu# 'etode Set=ocus digunakan untuk memindahkan fokus dari input ke suatu kontrol tertentu. 'etode digunakan untuk memodifikasi nilai 5ab+rder yang sudah ditetapkan sebelumnya.

9. 4e)adian 'E%ent( Selain "roperti dan 'etode, *isual Basic juga menyediakan sejumlah kejadian ;events<. Berikut ini merupakan kejadian%kejadian umum yang disediakan2 $ejadian 8lick dan Double8lick $ejadian 8lick dan Double8lick terjadi pada saat seorang pengguna melakukan click atau double click pada sebuah kontrol. $ejadian 8hange $ejadian 8hange dibangkitkan pada saat isi dari suatu kontrol mengalami perubahan. $ejadian !ot+ocus dan :ost+ocus $ejadian Got+ocus akan dibangkitkan pada saat sebuah kontrol menerima fokus input, sedangkan :ost+ocus merupakan kebalikan dari kejadian Got+ocus, dibangkitkan pada saat kontrol memindahkan fokusnya menuju ke kontrol yang lain. $ejadian "e)Do$n, "e)2p, dan "e)Press $ejadian "e)Do$n, "e)2p, dan "e)Press merupakan kejadian yang berhubungan dengan ke)board. 'asing%masing kejadian dibangkitkan pada saat ke)board di tekan ke ba&ah, dilepas, dan ditekan. $ejadian 7ouseDo$n, 7ouse2p, dan 7ouse7ove $ejadian%kejadian ini dibangkitkan pada saat mouse di%click, dilepas, dan digerakkan di atas sebuah control #cti-ate 3-ent ini terjadi bila sebuah form menjadi &indo& yang aktif. Deacti-e 3-ent ini terjadi ketika anda berpindah dari satu form ke form lain.

//

!ot=ocus 3-ent ini terjadi bila sebuah objek menjadi satu%satunya focus. Sebuah form dapat membuat objek focus bila form tersebut menjadi &indo& aktif. 6ostfocus 3-ent ini terjadi bila sebuah objek kehilangan focus karena ada objek lain yang mendapatkan focus. 6oad 3-ent ini terjadi bila sebuah form dibuka atau dipanggil. ?nload 3-ent ini terjadi bila sebuah form ditutup. IesiAe 3-ent ini terjadi bila sebuah form diubah ukurannya. 5imer 3-ent ini terjadi ketika e-ent lain dijalankan sebelum e-ent timer ini. 3-ent ini hanya berhubungan dengan control timer. ;. C nt h Pr gra& $ita akan mencoba membuat program yang meminta user untuk menekan tombol Oes sampai dapat. 6etakkan beberapa object yang ada dalam form, atur beberapa setting property yang ada seperti terlihat pada gambar di ba&ah ini2

4 ntr l =orm 6abel

Pr "ert8 4ame 8aption 8aption

Setting Value frOes $lik Oes #re you handsomeGG

/.

:mage "icture 8ommand 4ame Style "icture

!ambar bebas cmdOes 1%!raphical !ambar bebas

$etikkan kode program berikut ini 2


K2ode program beri?ut diDalan?an pada saat user Kmenggera??an pointer di atas cmdLes KcmdLes a?an bergera? secara random Private Sub cmd"es_#ouse#ove(Button As $nteger% Shi&t As $nteger% ' As Single% " As Single) cmdLes#JeFt = Int4Cnd 8 4 e#Gidth M cmdLes#Gidth77 cmdLes#,op = Int4Cnd 8 4 e#%eight M cmdLes#%eight77 End Sub

C. Latihan IEAN Buat program yang bisa merubah &arna tombol 5command6! 'isalnya, ketika pointer berada di atas tombol maka tombol ber&arna kuning, dan ketika pointer tidak berada di atas tombol ;meninggalkan tombol< maka &arna tombol menjadi biru.

$A7.A0 PUS.A4A

BAB IV 42N.02L IN.0ISI4

/6

A. Pendahuluan Dalam *isual Basic yang dimaksud dengan kontrol%kontrol intrinsik adalah kontrol%kontrol yang tampil pada 5oolbo1 saat *isual Basic pertama kali dijalankan. Disamping kontrol%kontrol intrinsik tersebut, *isual Basic juga mempunyai kontrol%kontrol tambahan yang disebut 7icrosoft ?ctive@ 8ontrol ;O8@ controls<. 'eskipun +89 mempunyai banyak keunggulan dibanding kontrol intrinsik, namun penggunaan kontrol intrinsik tetap memiliki keunggulan dibanding +89 antara lain2 $ontrol intrinsik disertakan pada file 'S*B*'60.D66 yang terdapat pada setiap *isual Basic sehingga tidak memerlukan tambahan file yang lain. $ontrol intrinsik ditampilkan lebih cepat dibanding +89 pada saat program dieksekusi ;run time<. B. Materi 1. C &&and 8ommand button dapat digunakan dengan mudah yaitu hanya dengan diletakkan pada form dan memberikan caption ;properti caption< dan nama ;properti name< yang sesuai. $ode untuk "rosedur kejadian klik ;8lick event procedure< perlu ditulis agar sebuah command button dapat berfungsi ;menerima kejadian ketika ditekan<.
Private Sub cmd(est_Click() I en+impan data9 menutup Form +ang a?tiF# Call SaveData,oDis? I emanggil prosedur SaveData,oDis? )nload e Kmenutup Form End Sub

Selain kejadian klik ;click event<, command juga menerima kejadian dari ke)board dan mouse ;seperti "e)Do$n, "e)Press, "e)2p, 7ouseDo$n, 7ouse7ove, 7ouse2p, tetapi tidak menerima kejadian Dbl8lick<.

#. La-el $ontrol label digunakan untuk memberikan keterangan untuk kontrol% kontrol lain seperti Text'ox, :ist'ox, dan 8ombo'ox. Biasanya properti caption pada kontrol tersebut diisi dengan kalimat yang sesuai dan dilengkapi

karakter ampersand;N< untuk memberikan hot ke). Selain properti caption, properti lain yang cukup berguna adalah 'order0t)le ;digunakan untuk menampilkan kontrol label secara , Dimensi< dan ?lignment ;Bika align dari caption tampil pada pinggir kiri, kanan, atau tengah<. Bika caption sebuah label terlalu panjang, maka properti ;ord;arp dapat diberi nilai true sehingga label tersebut memiliki lebih dari satu baris. #tau juga dapat mengubah nilai properti ?uto0i>e menjadi true agar kontrol secara otomatis mengubah ukurannya sesuai dengan panjang caption. 3. .e/tB / $ontrol Text'ox digunakan untuk menerima masukan dari pengguna. "engguna dapat memasukan data berupa angka, huruf, dan karakter%karakter khusus. "ada umumnya kontrol tersebut diletakkan di sebelah kontrol label yang berguna untuk memberikan keterangan. Setelah kontrol 5e1tBo1 tersebut diletakkan pada form, umumnya properti text pada kontrol tersebut dihapus. Selain properti text, juga terdapat properti multiline yang digunakan agar Textbox dapat menerima masukan karakter yang panjang. Text'ox juga mendukung properti alignment. Bika sebuah kontrol Text'ox menerima masukan yang terbatas panjangnya, maka properti maxlength dapat diberi nilai yang menunjukan panjang maksimum yang diperbolehkan. Bika kontrol Text'ox menerima masukan berupa pass$ord, maka properti pass$ord8har dapat diisi dengan dengan karakter tertentu, biasanya karakter asterik;@<. 9. Chec*B / $ontrol 8heckbox mempunyai banyak kegunaan ketika suatu dialog mena&arkan pilihan. 'emungkinkan user memilih lebih dari satu pilihan. $etika kontrol tersebut diklik maka kontrol tersebut menunjukkan sebuah keadaan benar atau salah ;5rue atau =alse<. Seperti label,

/C

Gambar *! 8heck'ox "eletakan kontrol tersebut pada sebuah form biasanya dilakukan dengan mengisi properti 8aption untuk menjelaskan keadaan dari kontrol. Sedangkan kejadian ;3-ent< yang penting dari kontrol tersebut adalah kejadian klik ;click event<. Sebagai contoh ketika sebuah checkbo1 diklik, maka akan memberikan dampak pada kontrol yang lain. Berikut contoh penggunaan pada suatu kode program 2 Sub ch?Sop>Clic?47 Private
Fra,est#@nabled = 4ch?Sop#Value = .7 @nd Sub

8heckBo1 memiliki nilai 1 dan 0 ;1 > 5rue, 0 > =alse<. $etika 8heckBo1 dipilih ;dicentang< maka akan bernilai 1 dan sebaliknya. ;. 2"ti n $ontrol +ption selalu digunakan dalam suatu group berjumlah 0 atau lebih yang mena&arkan pilihan yang bersifat mutuall) exclusive ;hanya diperbolehkan untuk memilih salah satu pilihan dari beberapa opsi yang dita&arkan<, lihat gambar /.0.

/9

Gambar *!% Option #pabila sebuah Option dipilih, maka Option yang lain dalam group yang sama tidak akan terpilih. Option yang dipilih bernilai 1, dan yang tidak dipilih bernilai 0. Option dalam satu group tersebut biasanya diletakkan pada sebuah frame yang sama. 8ontoh dalam pemrogramannya seperti berikut ini2
K Ji?a status single dipilih9 mendapat tunDangan =$$$$$ K Ji?a status meni?ah dipilih9 mendapat tunDangan ($$$$$ IF optSingle#Value = . ,hen tunDangan = =$$$$$ @lseIF optNi?ah#Value = . ,hen tunDangan = ($$$$$ @nd IF

6. 7ra&e $ontrol +rame mempunyai fungsi yang mirip dengan kontrol label digunakan untuk memberikan keterangan pada kontrol lainnya. Bedanya, kontrol frame juga digunakan sebagai kontainer ;tempat< dari kontrol%kontrol yang lain. 8ontoh kontrol frame, lihat gambar /.0. "ada umumnya frame diletakkan pada form dan properti caption%nya diberi nilai untuk memberikan keterangan tentang kontrol%kontrol yang menempel. Setelah kontrol frame diletakkan, kontrol anak ;child control< dari frame tersebut dapat diletakkan secara langsung diatas frame tersebut. #lternatif yang lain adalah dengan membuat kontrol%kontrol yang sudah ada menjadi kontrol anak dari sebuah frame dengan cara memilih kontrol%kontrol tersebut dengan melakukan klik disertai dengan menekan tombol ctrl kemudian mengambilnya ;cut A ctrlBx< dan meletakkan ;paste A ctrlBv< diatas kontrol frame.

.0

$ontrol frame mempunyai 0 karakteristik yang menarik yaitu 2 Bika +rame kita gerakkan, maka semua kontrol didalamnya akan mengikuti. "roperti enable dan visible dari kontrol +rame akan mempengaruhi kontrol didalamnya. Dengan kata lain apabila suatu +rame diset enable A false ;biasa disebut 2 disable<, maka semua kontrol yang ada didalamnya secara otomatis akan disable pula. H. List B / $etika sebuah $ontrol :ist'ox diletakkan pada sebuah form, maka beberapa properti dari kontrol tersebut harus diberikan seperti atribut sorted agar secara otomatis item yang ada didalamnya diurutkan berdasarkan alpabetik. Bika item%item yang harus muncul pada kontrol listbox sudah diketahui pada saat design time, item%item tersebut dapat dimasukkan langsung melalui properti list. 8ukup mengetikkan isinya, untuk berpindah ke baris berikutnya tekan 8trlU3nter.

Gambar *!( Properti :ist dari "ontrol :ist'ox 4amun hal ini tidak menutup kemungkinan untuk memasukkan item data melalui kode program seperti contoh kode diba&ah ini 2
lstCoba#AddItem lstCoba#AddItem lstCoba#AddItem lstCoba#AddItem "Sistem InFormasi" ",e?ni? InFormati?a" " anaDemen InFormati?a" ",e?ni? 2omputer"

.1

"roperti columns digunakan untuk menentukan tipe%tipe yang berbeda dari listbox dengan beberapa kolom dan sebuah hori>ontal scrool bar pada border sebelah ba&ah atau sebuah kolom dan sebuah vertical scroll bar pada sisi sebelah kanan. "ada gambar /./ ditunjukkan perbedaan penggunaan nilai properti columns 0, 1 dan ,

Gambar *!* "ontrol :ist'ox dengan #ilai Properti 8olumns 1.

dan (

$ontrol :ist'ox juga memperbolehkan seorang pengguna untuk memilih lebih dari satu item pada suatu &aktu. ?ntuk mengaktifkan, properti 7ulti0elect diberi nilai -0imple atau %-Extended. "ada mode -0imple pemilihan dapat dilakukan dengan menggunakan menekan spasi ;space bar< atau mouse. "ada mode %-Extended pemilihan dilakukan dengan menekan tombol shift! Selain properti 7ultiselect , kontrol 6istBo1 mempunyai properti 0t)le yang diberi nilai 1-0tandard dan -8heckbox seperti ditunjukkan !ambar /..

.0

Gambar *!, "ontrol :ist'ox dengan properti 0t)le 1C0tandard dan -8heckbox 8ontoh 2 menggunakan 6istBo1 untuk memilih kota yang pernah #nda kunjungi 2

Pri%ate Su- c&dAddGClic*'< ^'enampilkan nama kota di lst$unjung sesuai yang dipilih di lst$ota Dim 8ur:tem #s :nteger 8ur:tem > 0 Do *!- 8ontoh Program 7enggunakan :ist'ox ^Bika Gambar item yang dipilih :f lst$ota.Selected;8ur:tem< 5hen #tur form seperti pada gambar ^5ambahkan ke lst$unjung.Bika #nda menambahkannya ke 8omboBo1, ^ganti Xlst$unjungX di ba&ah dengan nama 8omboBo1 yang ada. $etikkan kode program seperti berikut 2 ^8ontoh2 cbo$unjung.#dd:tem lst$ota.6ist;8ur:tem< lst$unjung.#dd:tem lst$ota.6ist;8ur:tem< ^6alu hapus dari lst$ota lst$ota.Iemo-e:tem ;8ur:tem< 3lse 8ur:tem > 8ur:tem U 1 3nd :f 6oop ?ntil 8ur:tem > lst$ota.6ist8ount End SuPri%ate Su- c&dAddAllGClic*'( ^'emindahkan semua kota ke lst$unjung =or i > 0 5o lst$ota.6ist8ount % 1 lst$unjung.#dd:tem lst$ota.6ist;i< ., 4e1t i lst$ota.8lear End Su-

I. C &- B / $ontrol 8ombo'ox merupakan kontrol yang mirip dengan kontrol :istbox, jadi apa yang dapat bekerja pada kontrol :istbox juga bekerja dengan baik pada kontrol combo'ox. Seperti pada kontrol listbox juga memiliki properti sorted yang digunakan untuk mengurutkan item data secara otomatis dan properti list yang digunakan untuk menambahkan data pada saat design time. $ebanyakan metode yang digunakan pada :ist'ox juga terdapat pada 8ombo'ox seperti ?ddItem. 3emoveItem. dan 8lear. $ontrol 8ombo'ox sebenarnya merupakan gabungan antara sebuah Text'ox dan :ist'ox. $ontrol 8ombo'ox juga memiliki properti 0t)le memberikan , pilihan yaitu 2 0 ] Dropdo&n 8ombo 2 pemakai diperbolehkan mengetik tulisan yang tidak ada di list ;daftar<

./

1 ] Simple 8ombo

2 pemakai boleh mengetik atau memilih dengan tombol ke atas dan ke ba&ah pada ke)board dan daftar tidak bias terbuka.

0 ] Dropdo&n 6ist J. I&age

2 pemakai hanya dapat memilih tulisan yang ada di list ;daftar< dan tidak bisa mengetik di list

Digunakan untuk menampilkan gambar dalam format bitmaps ;B'"<, de-ice independent bitmaps ;D:B<, metafiles ;('=<, enhanced metafiles ;3'=<, !:= dan B"3! compressed files, dan icons ;:8+ dan 8?I<. "roperti 0tretch digunakan untuk menentukan apakah gambar disesuaikan dengan ukuran kontrol ;gambar dapat menggalami pengecilan maupun pembesaran< Mena&"il*an ga&-ar *edala& * ntr l i&age "ada saat design anda dapat mengisikan gambar ke dalam image box dengan menggunakan properti Picture, sedangkan pada runtime anda dapat menggunakan fungsi :oadPicture5namafile6 untuk memuat gambar ke properti "icture dari kontrol image, contoh 2
imgAambar#Picture = JoadPicture4"DBNPictureNstmi?#Dpg"7

8atatan 2 =ungsi :oadPicture5namafile6 digunakan untuk memuat file grafik dengan format grafik bitmap ;.bmp<, icon ;.ico<, run%length encoded ;.rle<, metafile ;.&mf<, enhanced metafiles ;.emf<, !:=, B"3! ;.jpg<. Meng s ng*an * ntr l i&age ?ntuk mengosongkan kontrol image pada saat runtime, anda dapat menggunakan fungsi 6oad"icture, tanpa menggunakan argumen nama file,
imgAambar#Picture = JoadPicture contoh 2

Men8i&"an ga&-ar dala& * ntr l 'mage *e 7ile #nda dapat menggunakan perintah 0avePicture gambar, namafile untuk menyimpan gambar kedalam file dengan format B'", contoh 2
SavePicture imgAambar#Picture9"DBNPictureNstmi?#bmp"

..

8atatan 2 "erintah 0avePicture akan selalu menyimpan gambar ke format bitmap ;.bmp<, tanpa memperhatikan format sumber gambar. 10. Picture B / $alau Image digunakan untuk menampilkan gambar, demikian juga Picture'ox Selain menampilkan gambar, Picture 'ox mendukung berbagai metoda untuk untuk operasi grafik, dan dapat berfungsi sebagai kontainer bagi kontrol% kontrol lain, seperti fungsi +rame. 8ontoh penggunaan metode :ine. Pset. 0cale pada Picture'ox untuk menampilkan grafik 2 $etikkan kode progam seperti berikut 2
Pri%ate Su- c&dGra!i*GClic*'( pic!rafik.Scale'ode > 0 pic!rafik.Scale(idth > ,60 pic!rafik.Scale7eight > 0 pic!rafik.Scale6eft > 0 pic!rafik.Scale5op > %1 pic!rafik.=ore8olor > -bBlack FSet =ore8olor Badi 7itam pic!rafik.6ine ;0, 0<%;,60, 0< F!aris 7itam =or i > 0 5o ,60 pic!rafik.=ore8olor > -bIed F5itik 'erah pic!rafik."Set ;i, %Sin;i @ ,.1/ J 1C0<< pic!rafik.=ore8olor > -bBlue F5itik Biru pic!rafik."Set ;i, %8os;i @ ,.1/ J 1C0<< 4e1t i End Su-

Setelah program dijalankan, maka hasilnya seperti terlihat pada gambar /.

Gambar *!D 7embuat Grafik dengan Picture'ox

.6

Scale M de Digunakan untuk menentukan unit skala yang digunakan ;0 % ?ser, 1 % 5&ip, 0 % "oint, , % "i1el, / % 8haracter, . % :nch, 6 % 'ilimeter, 8entimeter< 1 inchi 1 cm 1 inchi > > > 1//0 5&ip .6 5&ip 0 point ;100 5&ip untuk lebar, 0/0 untuk tinggi< 1000 unit ;7imetric< %

1 character> 1 cm >

#nda dapat membuat modus skala sendiri dengan menset properti ini menjadi 0 % ?ser, dan skala anda dapat ditentukan pada Scale(idth dan Scale7eight, perhatikan kembali contoh !rafik sinus sebelumnya. Scale Le!t Digunakan untuk menentukan nilai koodinat horiAontal paling kiri, #nda dapat menggunakan properti ini untuk menentukan koordinat paling kiri dari suatu sumbu 9. Scale . " Digunakan untuk menentukan nilai koodinat -ertikal paling atas, anda dapat menggunakan properti ini untuk menentukan koordinat paling atas dari suatu sumbu O. Scale Eeight Digunakan untuk menentukan tinggi sumbu -ertikal. 'enentukan panjang sumbu O. Scale5idth Digunakan untuk menentukan panjang sumbu horiAontal. 'enentukan panjang sumbu 9. Met de Gra!i* Pada PictureB / Salah satu perbedaan antara :mage dengan "ictureBo1 adalah tersedianya berbagai metoda penggambaran grafik pada Picture'ox, antara lain2

Circle'/:8(:r:6arna:a6al:a*hir:As"e* 'enggambarkan sebuah lingkaran dengan berpusat pada koordinat /:8 dan jari%jari r dengan 6arna garis, mulai dari sudut a6al, sampai sudut a*hir ;yang dinyatakan dalam radian<, serta as"e* perbandingan tingi dengan lebar. Cls 'embersihkan Picture'ox dengan &arna 'ack8olor Line '/1:81( , '/#: 8#(:6arna 'enggambarkan garis tunggal dari koordinat /1:81 sampai dengan /#:8# Line '/1:81( , '/#: 8#(:6arna:B 'enggambarkan kotak dari koordinat /1:81 sampai dengan /#:8# Line '/1:81( , '/#: 8#(:6arna:B7 'engambarkan kotak berisi dari koordinat /1:81 sampai dengan /#:8# Pset '/:8( 'encetak dot ;titik< pada koordinat tertentu pada +orm. Picturebox, dan Printer. pada koordinat yang ditentukan 11. Scr llBar #da 0 macam kontrol 0croll'ar yaitu <scroll'ar dan &scroll'ar. $eduanya mempunyai sifat yang sama namun berbeda orientasi. "roperti dari kontrol tersebut yang cukup penting adalah properti 7in dan 7ax yang merepresentasikan nilai jangkauan minimum dan maksimum. "roperti lain yang penting pada &aktu run%time adalah &alue, yang selalu mengembalikan nilai posisi indikator yang terdapat pada scrollbar. #da 0 kejadian ;3-ent< penting dari scroolbar yaitu kejadian 8hange yang akan dipanggil pada saat scrollbar diklik dan kejadian geser ;0croll< yang dipanggil ketika indikator pada scrollbar mengalami perubahan. 8ontoh 2 'enggeser posisi Image ke atas dan ke ba&ah

.C

Klik/geser ke atas atau ke bawah

Gambar *!E 7enggunakan &scroll'ar untuk menggeser posisi gambar $ode programnya seperti berikut ini2
Private Sub vsb)ambar_Change() imgAambar#,op = MvsbAambar#Value End Sub Private Sub vsb)ambar_Scroll() imgAambar#,op = MvsbAambar#Value End Sub

E%ent Scr ll, akan dibangkitkan ketika pemakai melakukan pergeseran terhadap Bar dengan menggunakan drag pada tombol kiri mouse, jadi 3-ent Scroll akan terjadi ketika pemakai melakukan pergeseran dengan menekan tombol kiri mouse, dan diakhiri dengan 3-ent 8ahnge ketika pemakai melepas penekanan mouse. Badi anda harus memanfaatkan kedua e-ent tersebut untuk mendapatkan hasil yang baik dalam pemakaian ScrollBar. 1#. .i&er $omponen 5imer sangat baik untuk mengimplementasikan pengaruh &aktu terhadap suatu proses seperti proses animasi atau dalam pembuatan game supaya kecepatan dari game bisa diatur. $omponen 5imer bersifat non%-isual, pada saat program dijalankan, 5imer tidak kelihatan. Beberapa properti Timer adalah sebagai berikut 2 Ena-led

.9

'enentukan apakah kontrol dapat efektif terhadap 3-ent 5imer. Inde/ Digunakan untuk menentukan nomor inde1, jika kontrol tersebut merupakan kontrol array. Inter%al 'enentukan nilai inter-al dalam mili detik ;1J1000< antar pemanggilan 3-ent 5imer. .ag "roperti ini dapat digunakan sebagai tempat menyimpan data sementara yang berkaitan dengan kontrol label tersebut Event Timer 2 3-ent yang dibangkitkan oleh kontrol timer berdasarkan inter-al &aktu yang telah ditentukan. 8ontoh 2 'embuat Bam Digital

Gambar *!/ 7enggunakan Timer untuk membuat 9am Digital 6etakkan 6abel dan 5imer pada =orm seperti pada gambar /.9. #tur properti 5imer, ;Enabled A True, Interval 2 1000<. Dan ketikkan kode program seperti berikut Private Sub tmr*am_(imer()
lblJam#Caption = Eormat4No-9 "hhBmmBss"7 End Sub

60

8ontoh 2 'embuat jam analog

7 r&AC ntr l =orm1 Shape 1 Shape0 6abel1 6abel0 6abel, 6abel/ 6abel.

Pr "erties 4ame 8aption 4ame Shape 4ame Shape 4ame BackStyle 8aption 4ame BackStyle 8aption 4ame BackStyle 8aption 4ame BackStyle 8aption 4ame BackStyle 8aption 4ame 8aption :nde1 4ame :nter-al

Setting =orm1 Bam #nalog Shape1 ,%8irlcle Shape0 /%Iounded Iectangle 6abel1 0%5ransparent 10 6abel0 0%5ransparent , 6abel, 0%5ransparent 6 6abel/ 0%5ransparent 9 6abel. 1%=i1edSingle 8mdKbentuk #'J"' 4ormal S5+" 0,1,0 5mrLuartA 1000

8ommand1

5imer1

61

8onst pi > ,.1/1.9 Dim s& #s :nteger "ri-ate Sub =ormK6oad;< 8all 5imer1K5imer s& > 0 3nd Sub "ri-ate Sub 8mdKbentukK8lick;:nde1 #s :nteger< Select 8ase :nde1 8ase 0 s& > 0 6abel..8aption > =ormat;5ime, Xhh2mm2ss #'"'X< 8ase 1 s& > 1 6abel..8aption > =ormat;5ime, Xhh2mm2ssX< 8ase 0 3nd 3nd Select 3nd Sub "ri-ate Sub 5mr)uartAK5imer;< Dim 1h #s Single, yh #s Single Dim 1m #s Single, ym #s Single Dim 1s #s Single, ys #s Single Dim hours #s Single Dim minutes #s Single Dim seconds #s Single Dim jam #s Single :f s& > 0 5hen 6abel..8aption > =ormat;5ime, Xhh2mm2ss #'"'X< 3lse 6abel..8aption > =ormat;5ime, Xhh2mm2ssX< 3nd :f Beep hours > 7our;5ime< minutes > 'inute;5ime< seconds > Second;5ime< jam > hours U minutes J 60 1h > .00 @ 8os;pi J 1C0 @ ;,0 @ jam % 90<< yh > .00 @ Sin;pi J 1C0 @ ;,0 @ jam % 90<< linehour.90 > 1h U linehour.91 linehour.O0 > yh U linehour.O1 1m > .0 @ 8os;pi J 1C0 @ ;6 @ minutes % 90<< ym > .0 @ Sin;pi J 1C0 @ ;6 @ minutes % 90<< 6ineminute.90 > 1m U linehour.91 6ineminute.O0 > ym U linehour.O1 1s > 0 @ 8os;pi J 1C0 @ ;6 @ seconds % 90<< ys > 0 @ Sin;pi J 1C0 @ ;6 @ seconds % 90<< 6inesecond.90 > 1s U linehour.91 6inesecond.O0 > ys U linehour.O1 3nd Sub

60

13. $ri%eListB /: $irListB /: 7ileListB / Drive:ist'ox digunakan untuk menampilkan dri-e yang terdapat pada sistem komputer

Gambar *! 1 7enggunakan Drive:ist'ox Dir6istBo1 dapat digunakan untuk menampilkan folder%folder yang terdapat di dri-e yang aktif.

Gambar *! folder yang aktif.

7enggunakan Dir:ist'ox

+ile:ist'ox digunakan untuk menampilkan file%file yang terdapat pada

6,

Gambar *! % 7enggunakan +ile:ist'ox Me&-atasi !ile "ada 7ileListB / ?ntuk membatasi file berdasarkan nama file, anda dapat menggunakan properti Pattern, misalnya kalau file yang ingin ditampilkan hanya berupa file bitmap, maka kita dapat menggunakan ;@.bmp<, kalau file yang ingin ditampilkan berupa file grafik ?ntuk kita dapat file menggunakan berdasarkan ;@.bmp_@.jpg_@.gif_@.&mf_@.ico< membatasi

atributnya, anda dapat menggunakan properti #rchi-e, 7idden, 4ormal, Iead+nly dan System, dengan menentukan masing%masing menjadi 5rue atau =alse. Menghu-ung*an $ri%eListB /: $irListB / dan 7ileListB / 'isalnya kita memiliki tiga buah kontrol yaitu Dri-e6istBo1, Dir6istBo1, dan =ile6istBo1 dimana perubahan pada Dri-e6istBo1 akan menyebabkan perubahan tampilan pada Dir6istBo1, dan =ile6istBo1.

6/

Gambar *! ( 7enghubungkan Drive:ist'ox. Dir:ist'ox. +ile:ist'ox $etikkan kode program seperti berikut 2
Private Sub dir(est_Change() Fil,est#Path = dir,est#Path End Sub Private Sub drv(est_Change() dir,est#Path = drv,est#Drive End Sub

19. C && n $ial g B / a. Met de C && n $ial g 8ommon Dialog Bo1 merupakan kontrol yang menyediakan fasilitas dialog%dialog umum yang sering digunakan pada lingkungan (indo&s seperti +ile Dialog, +ont Dialog, dan Printer Dialog. "ada saat kontrol tersebut diletakkan pada form, kontrol tersebut tidak dapat diubah ukurannya seperti kontrol timer, namun kontrol tersebut dapat dilihat pada saat program dijalankan ;runtime< dalam bentuk dialog.

6.

'eskipun kontrol tersebut merupakan kontrol yang umum, namun kontrol ini tidak diletakkan pada 5oolBo1. ?ntuk menambahkan kontrol tersebut pada 5oolbo1 ikutilah langkah%langkah berikut ini2
1. "ilih menu Project-8omponents atau dengan menekan 8trl-T, maka

akan ditampilkan 8omponents Dialog box, lihat gambar /.1/.

Gambar *! * ;indo$ 8omponents-8ommon Dialog


0.

"ilih 'icrosoft 8ommon Dialog Bo1 8ontrol pada 6istBo1 dan klik +$, maka $ontrol Dialog Bo1 akan ditampilkan pada 5oolBo1. ?ntuk menambahkan pada form, double click pada kontrol tersebut

,.

?ntuk menampilkan Dialog bo1 dapat digunakan salah satu 'ethod berikut ini2 0ho$8olor untuk menampilkan sebuah color dialog. 0ho$+ont untuk menampilkan sebuah font dialog. 0ho$<elp untuk menampilkan sebuah help dialog. 0ho$Open untuk menampilkan sebuah open file dialog.

66

0ho$Printer untuk menampilkan sebuah printer dialog. 0ho$0ave untuk menampilkan sebuah sa-e file dialog
cdbDialog#Dialog,itle = "Eile *pen" cdbDialog#Eilter = "8#t0t" I,ampil?an File te0t saDa cdbDialog#EileName = "8#t0t" IDeFault nama File cdbDialog#Sho-*pen I menampil?an dialog open File

-. C nt h 5ambahkan 1 8ommon Dialog 8ontrol dan . 8ommand di =orm #nda. #tur seperti berikut 2

Gambar *! , 8ontoh Program menggunakan 8ommon Dialog $etikkan kode program berikut 2
Private Sub cmdColor>Clic?47 cdbDialog#Dialog,itle = "Select a Color" cdbDialog#Sho-Color I Displa+ the dialog bo0 @nd Sub Private Sub cmdEont>Clic?47 cdbDialog#Dialog,itle = "Eont" cdbDialog#EontName = "Arial" cdbDialog#Eont!old = cdlCE!oth cdbDialog#Sho-Eont @nd Sub

Private Sub cmdPrinter_Click() cdb+ialog,+ialog(itle - .Select a Printer. cdb+ialog,Sho/Printer End Private Sub cmdO en_Click() cdb+ialog,+ialog(itle-.0ile O en. cdb+ialog,0ilter-.1,t2t. 3 (am ilkan &ile te2t sa4a cdb+ialog,0ile5ame-.1,t2t. 3 +e&ault nama &ile cdb+ialog,Sho/O en 3 menam ilkan dialog o en &ile End Sub Private Sub cmdSave_Click() cdb+ialog,+ialog(itle-.0ile Save. cdb+ialog,0ilter-.1,1. 3 Sho/ all &iles cdb+ialog,0ile5ame-.test,t2t. 3 +e&ault &ilename cdb+ialog,Sho/Save 3 (rigger the dialog bo2 End Sub

1;. 4 ntr l Ani&asi $ontrol #nimasi dapat digunakan untuk menjalankan file #*: dan untuk menambahkan animasi pada sebuah program aplikasi. $ontrol ini hanya mendukung file #*: saja yang tidak memiliki suara dan tidak terkompres. =ile #*: ini dapat digemukan pada subdirektori

M8ommonM!raphicsM*ideo pada 'icrosoft *isual Studio 6.0 $ontrol animasi menyediakan , properti utama. Dua diantaranya adalah 8enter dan 'ack0t)le yang hanya dapat diset pada saat design time dan bersifat read onl) pada saat run time! Bika properti 8enter diset true, maka file #*: akan ditampilkan tepat ditengah. Sedangkan properti BackStyle dapat diberi nilai 0%cc0 ;'ack0t)le Transparent< atau 1%cc0 ;'ack0t)le OpaFue<. "roperti yang ketiga adalah ?utoPla) yang dapat diberi nilai kapanpun juga. Bika properti ini diberi nilai True maka secara otomatis akan dimainkan segera pada saat kontrol tersebut ditampilkan. ?ntuk membuka file #*: yang akan digunakan untuk ditampilkan dapat digunakan methods Open.
Animation.#*pen "CBNvb"NAraphicsNAVIsNFilecop+#avi"

6C

?ntuk menjalankan file a-i dapat digunakan methods "lay dengan format sebagai berikut2
Pla+ OCepeatCountP9 OStartErameP9 O@ndErameP

3epeat8ount merupakan banyaknya perulangan animasi yang dijalankan ;nilai defaultnya adalah 1 yang akan menjalankan file #*: terus menerus<. 0tart+rame menunjukkan a&al frame yang dijalankan. End+rame menunujukkan akhir frame. ?ntuk menghentikan animasi dapat digunakan salah satu dari 0 cara tergantung pada cara memulai yaitu 2
a. Bika animasi dalam mode ?utoPla), maka dapat dihentikan dengan

memberi nilai properti ?utoPla) menjadi false.


b. Bika animasi dijalankan dengan menggunakan method pla) maka dapat

dihentikan dengan menggunkan method stop. ?ntuk menghemat memori, kontrol animasi dapat di%unload dengan menggunakan metoda close

Gambar *! - 8ontoh Program menggunakan ?nimation 16. C nt h Pr gra& Berikut contoh program untuk menghitung durasi &aktu pada saat user klik tombol S5#I5 sampai user klik tombol S5+". $etika program dijalankan, &aktu akan berjalan. $etika user klik tombol S5#I5 maka durasi &aktu akan berjalan, ketika user klik tombol S5+" maka &aktu berhenti dan user

69

mendapat informasi durasi &aktu. Dan ketika klik tombol 39:5 maka program selesai. Buatlah tampilan form seperti gambar /.1 . 5ambahkan sebuah 5imer. $etik kode program seperti yang telah disediakan di kotak source code.

Gambar *! D 8ontoh program menghitung durasi $aktu $etikkan kode program seperti berikut 2
Dim A-al As Date Dim A?hir As Date Dim Jama As Single Private Sub cmdProses>Clic?47 IJi?a tombol mulaMmula adalah Start IF cmdProses#Caption = "S,AC," ,hen A-al = NoI,ampung -a?tu pertama ?ali dimulai lblStart#Caption = Eormat4A-al9 "hhBmmBss"7 cmdProses#Caption = "S,*P" IJi?a tombol dengan tulisan Stop dite?an @lseIF cmdProses#Caption = "S,*P" ,hen I ati?an ,imer tmrGa?tu#@nabled = Ealse A?hir = NoJama = A?hir M A-al lblDurasi#Caption = Eormat4Jama9 "hhBmmBss"7 cmdProses#Caption = "@<I," @lseIF cmdProses#Caption = "@<I," ,hen )nload e @nd IF @nd Sub Private Sub tmrGa?tu>,imer47 lblJam#Caption = "Se?arang Jam B " Q Eormat4No-9 "hhBmmBss"7 IF cmdProses#Caption = "S,*P" ,hen I%itung ?embali durasi -a?tu lblDurasi#Caption = Eormat4No- M A-al9 "hhBmmBss"7 @nd IF @nd Sub

C. Latihan6 6#5:7#4 Buka kembali contoh program seperti pada gambar /.1 di atas. 5ambahkan satu te1tbo1Jlabel untuk menginformasikan berapa jumlah yang harus dibayarkan setiap durasi &aktu tertentu. 'isalnya setiap durasi ,0 detik harus membayar Ip. 0.,00. Badi biaya akan otomatis bertambah terus menerus selama program belum diS5+".

$A7.A0 PUS.A4A

BAB V 7UNGSI,7UNGSI

A. Pendahuluan =ungsi adalah suatu program yang dapat menerima berbagai nilai dan memberikan umpan balik tertentu. 4ilai yang dimasukkan di dalam suatu fungsi disebut dengan parameter, yang berupa berbagainjenis seperti angka, string, tanggal dan sebagainya. 'anfaat pemakaian fungsi dalam suatu program adalah bisa menghemat &aktu dan tenaga. 'elihat manfaatnya maka suatu fungsi biasanya digunakan untuk melakukan beberapa seperti berikut ini 2 'emanipulasi teks atau string, yaitu melakukan kegiatan yang berkaitan dengan operasi string. 'isalnya fungsi untuk menghitung panjang suatu string, mengambil sebagian string, mengubah string menjadi huruf besar ;kapital< dan sebagainya. 'emanipulasi tanggal, jam, data yaitu melakukan kegiatan yang berkaitan dengan operasi tangga, jam, data dan bahkan juga melakukan operasi input dan output. 'isalnya fungsi untuk menampilkan tahun dari suatu tanggal, menit dari suatu jam dan sebagainya. "erhitungan matematik, yaitu melakukan proses perhitungan matematika yang berkaitan dengan data nilaiJangka. 'isalnya menghitung nilai absolut, sinus dan sebagainya. 8ara kerja suatu fungsi dapat diibaratkan sebagai suatu rumus yang sudah disiapkan oleh -isual basic. "emakai tinggal memasukkan nilai yang akan dihitung, lalu hasilnya akan segera didpat. !ambaran dari cara kerja fungsi dapat dilihat pada gambar berikut 2 Nilai 7ungsi Int'A( 0 Easil

BAB V 0EMA04S: MESSAGE B21: INPU.B21 !ambar ..1 #lur kerja suatu fungsi Dari gambaran di atas terlihat bah&a nilai D0.9E diberikan ke -ariable D#E yang selanjutnya -ariable tersebut dikenakan suatu fungsi int'(. 7asil dari pengolahan fungsi tersebut adalah dihasilkan suatu angka D0E. "ada -isual basic 6.0 terdapat beberapa fungsiintrinsik atau fungsi% fungsi yang sudah built%in, sehingga pemakai tidak perlu lagi untuk membuatnya. Bentuk penulisan dari fungsi adalah nama fungsi ditulis dengan tanda kurung yang dapat berisi parameter dari fungsi tersebut. "erhatikan contoh berikut ini 2 Int'3.19( Le!t'K4 &"uterL:3( Beberapa fungsi pada -isual basic telah dilengkapi dengan bantuan yang berupa tooltip, yang menunjukkan sintaks yang tepat dari fungsi tersebut. B. Materi 1. 0e&ar*s 3emarks digunakan untuk membantu memberikan keterangan seorang programer lain yang nanti akan memodifikasi program aplikasi dikemudian hari. 3emarks memberikan pesan ] pesan yang penting berkaitan dengan program yang dibuat. 3emarks tidak harus ditulis dengan format tertentu atau bahasa :nggris, melainkan dapat ditulis dalam bahasa :ndonesia sekalipun. Badi remarks merupakan pesan atau keterangan yang ditulis dalam kode program. 3emarks digunakan untuk membantu menjelaskan tentang kode yang ditulis dan *isual Basic akan mengabaikan semua 3emarks yang ada pada kode program. 5ujuan menambahkan 3emarks dalam program 2 'emberikan keterangan nama programmer dan tanggal pembuatan program. 'emberikan keterangan umum mengenai prosedur dan fungsi yang digunakan

'emberikan keterangan pada perintah ] perintah yang sulit dimengerti sehingga jika ada programer lain yang akan memodifikasi akan mengerti maksud dari kode yang ditulis. *isual Basic mendukung 0 macam penggunaan 3emarks yaitu 3emarks yang dimulai dengan menggunakan kata 3em dan 3emarks yang dimulai dengan tanda petik ;F<. Berikut ini format penggunaan statement 3em.
Cem Cem Cem Cem Cem Cem Cem ProgrammerB S, I2MD! 9 ,anggal B '6MEebM'$$R Program untu? menghitung luas segitiga# Dengan mengguna?an masu?an berupa .# ,inggi segitiga 4t7 '# Alas segitiga 4a7# ,ombol hitung untu? menghitung luas segitiga ,ombol e0it untu? ?eluar dari apli?asi#

"ada contoh tersebut terdapat sejumlah 3emarks yang menjelaskan nama programmer yang membuat dan tanggal pembuatannya serta kegunaan dari program tersebut. Selain menggunakan 3em juga dapat digunakan tanda petik satu untuk melakukan remark.
K K K K K K K ProgrammerB S, I2MD! 9 ,anggal B '6MEebM'$$R Program untu? menghitung luas segitiga# Dengan mengguna?an masu?an berupa .# ,inggi segitiga 4t7 '# Alas segitiga 4a7# ,ombol hitung untu? menghitung luas segitiga ,ombol e0it untu? ?eluar dari apli?asi#

$edua contoh di atas memberikan pesan dan keterangan yang sama, hanya saja cara yang kedua lebih mudah. #. Message B / #dakalanya sebuah program ingin menampilkan pesan kesalahan atau bertanya pada user, sebab kontrol ] kontrol yang ada pada form kurang jelas. 7essage box tidak seperti kontrol yang melekat pada form. 7essage 'ox berisi sebuah message akan ditampilkan tepat diatas sebuah form dan akan hilang ketika mendapat respon dari user dengan menklik tombol yang ada pada message box tersebut ;lihat gambar ..1<.

*isual Basic menyediakan 0 cara untuk menampilkan message box yaitu dengan menggunakan statement 7sg'ox dan menggunakan fungsi 7sg'ox!

Gambar ,!% 8ontoh pesan dengan 7essage'ox a. State&ent MsgB / "esan yang ditampilkan melalui statement 7sgbox menampilkan tombol +k. $etika user selesai membaca pesan tersebut, maka user akan menekan tombol +k untuk menutup pesan tersebut. Berikut ini =ormat statement 'sgBo1 2 #sgBo2 Prompt, Style Value, Title Prompt merupakan kalimat atau -ariabel yang berisi string yang akan ditampilkan. 0t)le menentukan tipe dari command button yang akan terlihat pada message bo1 dan nilainya dapat dipilih salah satu seperti pada tabel ..1. Sedangkan Title menunujukkan judul dari message bo1. 5abel ..1 4ilai $onstanta 'essage Bo1

$ita bisa menggunakan nama konstanta atau syle -alue untuk menggantikan nilai integer pada argumen kedua. "enggunaan nama konstanta akan lebih

mudah dibaca dibandingkan menggunakan style -alue. *isual Basic akan menampilkan list dari nama konstanta tersebut begitu anda mengetikan tanda koma setelah argumen pertama.

Setelah &engeti**an * &a: &a*a &uncul * nstanta 8ang -ias di"ilih

Gambar ,!( 7emilih "onstanta pad 7essage 'ox -. 7ungsi MsgB / ?ntuk menampung tombol mana yang ditekan oleh user, maka digunakan fungsi 'sgBo1. =ormat pada fungsi 'sgBo1;< sedikit berbeda dengan statement 'sgBo1. =ungsi ini menyediakan type yang lebih luas dibanding Statement 'sgBo1. PesanAnda-#sgBo2(Prompt, Style Value, Title PesanAnda adalah -ariable yang akan menampung nilai dari fungsi 'sgBo1;<. 4ilainya menentukan type dari tombol yang diklik oleh user. *ariable tersebut haruslah dideklarasikan sebagai tipe data integer pada general declaration section. .a-el ;.# Nilai 4 nstanta Saat . &- l MessageB / $i*li*

8ontoh 2 Buat project baru dengan tiga command button dan label.

Gambar ,!* 8ontoh program menggunakan 7essage'ox $emudian klik -ie& code dan ketikan kode berikut ini 2
Private Sub Command.>Clic?47 Dim test sg As Integer test sg = sg!o04"Silah?an Anda 2li? ,ombol"9 .9 ",est"7 IF test sg = . ,hen Jabel.#Caption = "Anda mengM?li? tombol *2" @lse Jabel.#Caption = "Anda mengM?li? tombol Cancel" @nd IF @nd Sub

$ode program di atas menggunakan Style *alue untuk menampilkan tombol pada message. $ode program berikut menggunakan $onstanta untuk menmpilkan tombol pada message. 8oba #nda ketikkan di 8ommand0K8lick dan lihat hasilnyaQ
Private Sub Command'>Clic?47 Dim test sg As Integer test sg = sg!o04"Silah?an Anda 2li? ,ombol"9vb*2Cancel9 ",est"7 IF test sg = vb*2 ,hen Jabel.#Caption = "Anda mengM?li? tombol *2" @lse Jabel.#Caption = "Anda mengM?li? tombol Cancel" @nd IF @nd Sub

Gambar ,!, Tampilan pesan menggunakan 7essage'ox $etika user meng%klik +$ pada test button, maka akan muncul pesan X#nda meng%klik tombol +$X sedangkan jika user meng%klik 8ancel button maka akan muncul pesan X#nda meng%klik tombol 8ancelX ?ntuk membuat message bo1 anda lebih menarik, anda bisa menambahkan icon pada message bo1 tersebut. #da empat tipe icon yang disediakan oleh *isual Basic seperti yang tertera pada tabel berikut ini 2 5abel .., 4ilai $onstanta dan :con pada 'essageBo1

'asukan kode berikut ini pada project yang telah anda buat sebelumnya.
Private Sub Command=>Clic?47 Dim test sg As Integer test sg = sg!o04"Silah?an Anda 2li?"9 vbLesNoCancel > / vb@0clamation9 ",est"7 IF test sg = " ,hen Jabel.#Caption = ",esting SuccessFul" @lseIF test sg = S ,hen Jabel.#Caption = "Are Lou SureT" @lse Jabel.#Caption = ",esting Eail" @nd IF @nd Sub

3. In"ut B / :nputBo1 akan menampilkan message dimana user dapat menginputkan suatu nilai atau message pada form tersebut. =ormat penggunaannya adalah sebagai berikut2
#6#essage-$n utBo2(Prom t% (itle% de&ault_te2t% 27 osition% 67 osition)

'y'essage adalah tipe data -ariant yang dideklarasikan sebagai string. #rgumen yang tersedia dapat dijelaskan sebagai berikut2 "rompt 5itle 2 "esan yang ditampilkan. 2 Budul dari :nput Bo1.

default%te1t 2 Default te1t yang ditampilkan pada field dimana user dapat menggunakannya atau menggantinya. 1%position and y%position 2 menunjukkan posisi dimana input bo1 tersebut akan ditampilkan pada form 5ambahkan satu 8ommand lagi pada project yang telah anda buat sebelumnya. 'asukan kode berikut ini 2
Private Sub Command6>Clic?47 Dim user sg As String user sg = Input!o04"Apa pesan andaT"9 " essage @ntr+ Eorm"9 > " asu?an message anda disini"9 ($$9 S$$7 IF user sg :; "" ,hen Jabel.#Caption = user sg @lse Jabel.#Caption = "No essage" @nd IF @nd Sub

$etika user meng%klik tombol +$ pada :nput Bo1, pada label akan menampilkan message yang telah anda ketik, akan tetapi jika anda meng%klik tombol 8ancel maka akan ditampilkan pesan X4o 'essageX. 9. C nt h Pr gra& 8ontoh berikut ini adalah untuk menerapkan penggunaan 'essageBo1. 5ampilan yang akan dibuat sperti pada gambar ../.

Gambar ,!- 8ontoh 7essage'ox Lang*ah,lang*ah > Balankan :D3 *isual Basic dan pilihlah project Standart 31e. Simpanlah project tersebut dengan nama cth"esan.frm untuk form dan cth"esan.-bs untuk projectnya. "ada form letakkan kontrol seperti pada gambar .... 3dit properti dari kontrol%kontrol seperti tabel ../. 5abel ../ 4ilai "roperti 8ontoh 'essageBo1 8ontrol =orm 8ommand Button 8ommand Button 6abel 6abel "roperti 4ame 8aption 4ame 8aption 4ame 8aption 4ame 8aption =ont 4ame 8aption =ont 4ame =ont 5e1t 5e1t 4ame Setting *alue frm'sgBo1 'enggunakan 'essage Bo1 cmd'sgBo1 5ampil 'sgBo1 cmd$eluar $eluar lblBudul"esan Budul "esan SiAe > 10 lbl"esan "esan SiAe > 10 t1tBudul"esan SiAe > 10 Y5ulis Budul "esan Oang #kan DitampilkanZ t1t"esan

5e1t

C0

=ont 5e1t

SiAe > 10 Y5ulis "esan Oang #kan DitampilkanZ

$emudian ketik kode berikut ini 2


Cem Cem Cem Cem Cem Cem 8MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8 8 Nama Program = Contoh essage !o0 8 8 Programmer = *r+n#Com 8 8 ,gl Pembuatan = '6 Eebruari '$$R 8 8 S, I2 D),A !ANASA 8 8MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8

Private Sub cmd2eluar>Clic?47 @nd @nd Sub Private Sub cmd sg!o0>Clic?47 Dim JudulPesan As String Dim Pesan As String JudulPesan = t0tJudulPesan#,e0t Pesan = t0tPesan#,e0t sg!o0 Pesan9 vb*2*nl+9 JudulPesan @nd Sub

;. 7ungsi,7ungsi Nu&eri* Dengan menggunakan fungsi%fungsi ba&aan yang disediakan, &aktu pembuatan sebuah program dapat disingkat. =ungsi%fungsi numerik merupakan fungsi%fungsi yang berkaitan dengan tipe data numerik. dapat dikelompokkan sebagai berikut 2 a. 7ungsi,7ungsi 4 n%ersi *e Integer #da tiga macam fungsi yang melakukan kon-ersi ke tipe data integer yaitu seperti terlihat pada tabel .... 7ungsi 8:nt;< =i1;< :nt;< 5abel ... =ungsi $on-ersi ke :nteger 4eterangan "embulatan nilai desimal 0.. dan lebih ke integer yang lebih dekat "emotongan suatu nilai desimal menjadi integer "embulatan ke ba&ah suatu nilai desimal =ungsi%fungsi ini

C1

?ntuk bilangan positif, fungsi =i1;< dan :nt;< memberikan perlakuan yang sama. Sebagai contoh, kedua pernyataan berikut ini mengembalikan nilai yang sama2
ans8 - $nt(89,:) ans< - 0i2(89,:) ;mengembalikan 89 ;mengembalikan 89

4amun fungsi =i1;< dan :nt;< memberikan perlakuan berbeda pada bilangan negatif. $edua pernyataan berikut memberikan pengembalian yang berbeda 2
ans8 - $nt(789,:) ans< - 0i2(789,:) ;mengembalikan 78: ;mengembalikan 789

Sedangkan fungsi 8:nt;< mengembalikan pembulatan angka yang terdekat. Berikut ni contoh penggunaan 8:nt;< 2
ans8 ans< ans= ans< ans= C$nt(89,8) C$nt(89,:) C$nt(89,>) C$nt(789,:) C$nt(789,>) ;mengembalikan ;mengembalikan ;mengembalikan ;mengembalikan ;mengembalikan 89 89 8: 789 78:

-. 7ungsi + 7ungsi 4 n%ersi .i"e $ata 5abel ..6 merupakan fungsi ] fungsi yang melakukan kon-ersi ke tipe data. 7ungsi 88ur;< 8Dbl;< 86ng;< 8Sng;< 8Str;< 8*ar;< 5abel ..6 =ungsi%=ungsi $on-ersi ke 5ipe Data 4eterangan 'engkon-ersi argumen menjadi tipe data 8urrency 'engkon-ersi argumen menjadi tipe data double ;presisi ganda< 'engkon-ersi argumen menjadi tipe data 6ong :nteger 'engkon-ersi argumen menjadi tipe data Single 'engkon-ersi argumen menjadi tipe data String 'engkon-ersi argumen menjadi tipe data *ariant

Sebagai contoh misalkan sebuah data yang merupakan hasil bagi ;1 J <.
lblNilai = CSng4.US7 Kditampil?an $#.6'V(S. lblNilai = CDbl4.US7 Kditampil?an $#.6'V(S.6'V(S.6=

8ontoh yang lain, ketika #nda akan menghitung 0J0.. 2


IContoh .B sg!o0 ' U CInt4$#(7 I:MM error Division b+ Hero IContoh 'B sg!o0 ' U Val4$#(7 I:MM error Division b+ Hero IContoh =B sg!o0 ' U CDbl4$#(7 I:MM benar menghasil?an 6

C0

'engapa contoh 1 dan 0 menghasilkan error $i%is n -8 Mer G $arena bilangan pecahan di kedua contoh tersebut dikon-ersi ke bilangan bulat, sehingga nilai 0.. ;nol koma lima< dianggap sebagai angka nol saja. Semua angka yang dibagi dengan nol maka akan menghasilkan error . Badi, solusinya gunakan cara pada contoh ,. 6. 7ungsi + 7ungsi Mate&ati*a =ungsi%fungsi yang bekaitan dengan matematika seperti terlihat pada tabel .. . 7ungsi #bs;< #tn;< 8os;< 31p;< 6og;< Sin;< SLr;< 5an;< H. 5abel .. =ungsi%=ungsi 'atematika 4eterangan 'engembalikan nilai absolut dari argumen 'engembalikan nilai #rc 5angen dari argumen dalam bentuk radian 'engembalikan nilai 8osinus dari argumen dalam radian 'engembalikan nilai 3ksponensial dari argumen 'engembalikan nilai 6ogaritma dari argumen 'engembalikan nilai Sinus dari argumen dalam radian 'engembalikan nilai #kar dari argumen 'engembalikan nilai 5engen dari argumen dalam radian

7ungsi + 7ungsi String Selain fungsi%fungsi numerik, *isual Basic juga mempunyai sejumlah fungsi%fungsi String diantaranya seperti pada tabel ..C. 7ungsi 68ase;< ?8ase;< *al;< 6en;< 5abel ..C =ungsi%=ungsi String 4eterangan 'engembalikan argumen string sebagai tipe data string huruf kecil 'engembalikan argumen string sebagai tipe data string huruf besar 'engembalikan nilai number dari argumen string 'engembalikan nilai number yang menunjukkan panjang string

C,

Substring merupakan bagian dari suatu string. ?ntuk memperoleh substring dari suatu string dapat digunakan , fungsi berikut 2 6eft;String*al, length< =ungsi ini mengembalikan nilai string dari sebelah kiri sebanyak length karakter . Iight;String*al, length< =ungsi ini mengembalikan nilai string dari sebelah kanan sebanyak length karakter . 'id;String*al, start*al, length< =ungsi ini mengembalikan nilai string dari start&al sebanyak length karakter . 8ontoh 2
%uruF?ecil = JCase4"D-i Apri"7 huruFbesar = )Case4"Set+orini"7 ,itle = "S, I2 Duta !angsa" l,itle = JeFt4,itle9 =7 r,itle = Cight4,itle9 (7 m,itle = id4,itle9 =9 V7 PanDang = Jen4,itle7 I%uruF2ecil = "stmi?" I%uruF!esar = "S, I2" Il,itle IC,itle I ,itle Ilength = = = = "S, " "angsa" " I2 Duta" .S

I.

7ungsi + 7ungsi .anggal dan 5a*tu Bika dalam suatu aplikasi diperlukan pengambilan tanggal atau &aktu dari sistem, *isual Basic menyediakan fungsi ] fungsi 4o&;<, Date;<, dan 5ime;<. 6ihat tabel ..9. 7ungsi 4o&;< Date;< 5ime;< DateDiff 5abel ..9 =ungsi%fungsi 5anggal dan (aktu 4eterangan 'engembalikan tanggal dan&aktu sistem 'engembalikan tanggal dari sistem 'engembalikan &aktu dari sistem 'endapatkan selisih dari dua buah tanggal

?ntuk mencari selisih dari dua buah tanggal tidaklah sulit, karena dalam -isual basic telah disediakan fasilitas untuk melakukan hal tersebut dengan

C/

menggunakan fungsi XDateDi++ X, yaitu sebuah fungsi yang digunakan untuk mendapatkan selisih dari dua buah tanggal. Dari fungsi DafeDiff kita bisa mendapatkan selisih hari, bulan dan tahun dari dua buah tanggal. 8ara penggunaan dari fungsi ini adalah sbb2

Dim hari9 bulan9 tahun I)ntu? mencari selisih hari hari=Date,ime#DateDiFF4"d"9CDate4,e0t.#,e0t79CDate4,e0t'#,e0t77 I)ntu? mencari selisih bulan bulan = Date,ime#DateDiFF4"m"9CDate4,e0t.#,e0t79CDate4,e0t'#,e0t77 I)ntu? mencari selisih tahun tahun = Date,ime#DateDiFF4"6666"9CDate4,e0t.#,e0t79CDate4,e0t'#,e0t77

Selain fungsi%fungsi diatas terdapat sebuah fungsi yaitu format;< yang berkaitan dengan fungsi%fungsi 5anggal dan &aktu.
0ormat(Ek resi?%&ormat?%&irstda6o&/eek?% &irst/eeko&6ear@@@)

=ungsi ini mengembalikan nilai -ariant atau string sesuai dengan format yang ditentukan. J. C nt h Pr gra& 1. Me&-uat MarNuee untu* 7 r& Ca"ti n, dimana caption dari form yang kita gunakan akan berjalan dari kanan kekiri secara terus menerus. $ontrol yang digunakan adalah satu buah kontrol timer yang inter-alnya kita set menjadi 100 atau bisa kita ganti sesuai keinginan kita. $etikkan kode program seperti berikut 2
Private Sub 0orm_Aoad() Eorm.#Caption = " O !elaDar V! "#$ P " End Sub Private Sub (imer8_(imer() a = JeFt4Eorm.#Caption9 .7 b = Jen4Eorm.#Caption7 c = Cight4Eorm.#Caption9 b M .7 Eorm.#Caption = c / a End Sub

C.

#. Menghitung Luas Segitiga, jika diketahui panjang dua sisi segitiga dan besar sudut yang diapit oleh segitiga tersebut. ?ntuk menyelesaikan masalah tersebut dapat digunakan fungsi berikut 2 6 > ` .a.b Sin r Catatan> sudut r yang #nda masukkan dalam ukuran derajat, untuk itu perlu dirubah terlebih dahulu sebelum dimasukkan dalam fungsi sin yang disediakan oleh *B. ;Iad > "hiJ1C0< Iancang formnya seperti berikut ini 2

$etik kode programnya sebagai berikut 2


Private Sub cmdBsia_Click() A = Val4t0tA#,e0t7 ! = Val4t0t!#,e0t7 C = Val4t0tC#,e0t7 hasil = $#( 8 A 8 ! 8 Sin4C 8 4=#.6 U .V$77 t0tJuas#,e0t = Cound4hasil9 '7 End Sub

S2AL LA.IEAN C. Latihan S2AL LA.IEAN 1. Buatlah sebuah form dengan sebuah label, sebuah 5e1tbo1, dan 0 buah command Button. 5e1tbo1 tersebut digunakan untuk memasukan data berupa angka dengan range antara 0 sampai 100000. Bika seorang user memasukan huruf atau angka yang berada diluar range maka akan ditampilkan pesan

C6

kesalahan dan meminta user untuk memasukkan data kembali. Bika masukan seorang user sudah benar maka akan ditampilkan pesan bah&a masukan sudah benar dan keluar dari aplikasi. 0. Buatlah program yang dapat menampilkan hari dan tanggal saat ini 2 8ontoh =ormnya 2

,. Buat program untuk menghitung usia seseorang. $etika program dijalankan muncul inputbox dan user diminta untuk memasukkan tanggal lahir. 5ampilannya seperti berikut2

Setelah user memasukkan tanggal lahir, dan mengklik tombol +$, muncul messagebox yang menampilkan usia #nda. 5ampilannya seperti berikut 2

$A7.A0 PUS.A4A

$A7.A0 PUS.A4A

BAB VI 42N.02L P02G0AM

A. Pendahuluan "enyelesaian kondisi atau pernyataan kondisi ;8onditional Statement< merupakan suatu pernyataan yang menganalisa suatu keadaan dan mengambil keputusan berdasarkan pada hasil analisa itu. 7asil dari penyelesaian, jika kondisi benar maka akan dikerjakan instruksi tertentu, sedang jika kondisi salah, maka akan dikerjakan instruksi yang lain. :ni salah satu dari fungsi dalam kontrol program. Dalam -isual basic terdapat dua kontrol program yang dapat digunakan yaitu logika percabangan dan logika perulangan.

B. Materi 1. 2"erat r 4 ndisi ?ntuk mengontrol alur program dalam *isual Basic, kita bisa menggunakan bermacam%macam operator kondisi. "ada dasarnya, operator kondisi ini mirip dengan operator aritmatik. +perator kondisi merupakan alat yang sangat hebat, dengan operator tersebut kita dapat melakukan perbandingan untuk memutuskan tindakan selanjutnya. 5abel 6.1 menunjukan operator kondisi yang digunakan dalam *isual Basic. .a-el 6.1 2"erat r 4 ndisi

CC

#. 2"erat r L gi*a Sebagai tambahan untuk operator kondisi, ada beberapa operator logika yang ditambahkan pada *isual Basic sehingga memudahkan pembuatan alur program. .a-el 6.# 2"erat r L gi*a

3. Pern8ataan I!....hen...Else a. S8nta*s U&u& Syntak umum untuk pernyataan i!...then...else adalah $0 :?ondisi; (HE5 :?ode program; Bila VkondisiW bernilai 5rue maka Vkode programW akan dikerjakan. $0 :?ondisi; (HE5 :blo? ?ode program .; EASE :blo? ?ode program '; E5+ $0 Bila VkondisiW bernilai 5rue maka Vblok kode program 1W akan dikerjakan, tetapi bila VkondisiW bernilai =alse maka Vblok kode program 0W yang akan dikerjakan. $0 :?ondisi .; (HE5 :blo? ?ode program .; EASE$0 :?ondisi '; (HE5 :blo? ?ode program '; C9 EASE :blo? ?ode program =; E5+ $0

Bila Vkondisi 1W bernilai 5rue maka Vblok kode program 1W akan dikerjakan, kemudian bila Vkondisi 0W bernilai 5rue maka Vblok kode program 0W akan dikerjakan, tetapi bila Vkondisi 1W dan Vkondisi 0W bernilai =alse maka Vblok kode program ,W yang akan dikerjakan. -. C nt h Pr gra& > 1( Me&-uat Pr gra& In"ut Pass6 rd 6etakkan kontrol :mage, 5e1tBo1, 6abel dan 8ommand. #tur seperti gambar berikut 2

Gambar -! Program Input Pass$ord dengan +ungsi I+ "engaturan property setiap object%nya adalah sebagai berikut 2 5abel 6., "roperty +bject untuk "rogram :nput "ass&ord 2-)ect Pr "erties Value =orm1 8aption =orm "ass&ord Start?p"ostion 0%8enterScreen :mage1 Stretch 5rue "icture 6ogo.jpg *isible =alse 6abel1 8aption :nput "ass&ord 5e1t1 4ame t1t"ass

90

"ass&ord8har 5e1t 8ommand1 4ame 8aption Buka Bendela 8ode dan pada bagian 8ode 3ditor ketikkan sebagai berikut 2

@ VkosongW cmd+$ N+$ kode programnya

Private Sub cmdOK_Click() IF t0tPass#,e0t = "admin" ,hen Image.#Visible = ,rue

Simpan program dan jalankan 2 1. $etikkan sembarang teks pada t1t"ass lalu klik tombol +$, maka tidak terjadi apa%apa. 0. $etikkan DadminE pada t1t"ass lalu klik tombol +$, maka gambar logo akan muncul "enjelasan kode program 2 I! t1t"ass.5e1t > XorynX .hen :mage1.*isible > 5rue
Kondisi Kode program yang dikerjakan jika kondisi True

'odifikasi programnya menjadi seperti berikut 2


Private Sub cmdOK_Click() IF t0tPass#,e0t = "or+n" ,hen Image.#Visible = ,rue sg!o0 "Pass-ord !enar"9 vb*2*nl+9 "Su?ses" @lse Image.#Visible = Ealse sg!o0 "Pass-ord Salah"9 vb*2*nl+9 "Aagal" t0tPass#,e0t = "" t0tPass#SetEocus @nd IF End Sub

Balankan program 2 1.

$etikkan sembarang teks pada t1t"ass lalu klik tombol +$, maka gambar tidak muncul dan muncul kotak pesan D"ass&ord SalahE. $lik tombol +$ pada kotak pesan tersebut. 'aka t1t"ass dikosongkan dan kursor akan aktif di t1t"ass ;t1t"ass.Setfocus<

0.

$etikkan DadminE pada t1t"ass lalu klik tombol +$ maka gambar akan muncul dan muncul kotak pesan D"ass&ord BenarE.

Catatan .a&-ahan >

91

5eks DadminE harus diketik huruf kecil semua. :ngat 2 data string bersifat case sensitive Q #gar pass&ord%nya .hen =ungsi LCase adalah untuk mengkon-ersi semua string yang diinput ke t1t"ass.5e1t menjadi huruf kecil, &alaupun user menginputnya dengan huruf kapital. .AN.ANGAN > 'odifikasilah struktur kontrol dan kode program di atas sehingga seorang user hanya mempunyai , kali kesempatan untuk mengetikkan pass&ord. Setelah , kali kesempatan dan pass&ord masih salah maka program akan otomatis berhenti. #( Me&-uat "r gra& &enentu*an nilai se rang &ahasis6a dengan *riteria se-agai -eri*ut > 5abel 6./ :nter-al 4ilai untuk "rogram $on-ersi 4ilai
Inter%al Nilai Nilai Euru! 4eterangan

tidak bersifat

case sensitive, modifikasi

pernyataan kondisinya menjadi 2 I! LCase;t1t"ass.5e1t< > XadminX

80-100 68-79 56-67 41-55 0-40

A B C D E

Lulus Lulus Lulus Remidi Gagal

#tur form beserta kontrol%kontrol yang diperlukan seperti berikut 2

90

Gambar -!% Program "onversi #ilai dengan 0tatement I

$etikkan kode program sebagai berikut 2


Private Sub t2t5ilai_Change() nilai = Val4t0tNilai#,e0t7 $& nilai ;= V$ And nilai := .$$ lbl%uruF#Caption = "A" lbl2et#Caption = "Julus" Else$& nilai ;= "V And nilai := lbl%uruF#Caption = "!" lbl2et#Caption = "Julus" Else$& nilai ;= (" And nilai := lbl%uruF#Caption = "C" lbl2et#Caption = "Julus" Else$& nilai ;= 6. And nilai := lbl%uruF#Caption = "D" lbl2et#Caption = "Cemidi" Else lbl%uruF#Caption = "@" lbl2et#Caption = "Aagal" End $& End Sub

(hen SR (hen "S (hen (( (hen

9. Pern8ataan Select...Case 8ara lain untuk menangani pengambilan keputusan dalam sebuah program adalah dengan menggunakan Select\8ase Statement, yang mampu menangani sejumlah kondisi dari satu -ariabel. Select...8ase serupa dengan

9,

:f ... 5hen ..... 3lse:f, tetapi lebih efisien apabila percabangan bergantung kepada satu kondisi saja. Dengan menggunakan Select ... 8ase sebagai pengganti dari :f ... 5hen ... 3lse :f, akan membuat program menjadi lebih sederhana. a. S8nta*s U&u& > =ormat penggunaan 0elect 8ase 2
Select Case nama_variabel Case nilai_1 Perintah +ang a?an die?se?usi Di?a memenuhi nilai>. Case nilai_2 Perintah +ang a?an die?se?usi Di?a memenuhi nilai>' Case Else Perintah +ang a?an die?se?usi Di?a tida? memenuhi semua End Select

5ype data pada namaK-ariabel harus sama dengan nilai pada 8ase. -. C nt h Pr gra& 1. Me&-uat "r gra& untu* &engetahui harga -arang -erdasar*an )enis -arang 8ang di"ilih di ListB / > #tur =orm beserta kontrol lain yang dibutuhkan seperti tampilan berikut2

Private Sub lstBarang_Click() Dim %arga As Jong Dim Satuan As String Select Case lst!arang#,e0t Case "CD !lan?" %arga = V($$$ Satuan = "!o0" Case ,ulis" Gambar -!( "!u?u Program <arga 'arang dengan 0tatement 0elect 8ase %arga = ="$$$ $etikkan kode program 2 Satuan = berikut "Jusin" Case "2ertas" %arga = 'V$$$ Satuan = "Cim" Case "!olpoin" %arga = .($$$ Satuan = "Pa?" End Select

9/ Jabel=#Caption = %arga Jabel6#Caption = Satuan


End Sub

8atatan 2 -ariablel nilai ;lstBarang.5e1t< adalah string sehingga nilai yang ada pada 8ase seperti X8D BlankX adalah tipe data string juga. 5#45#4!#4 2 'odifikasi program 7arga Barang di atas ;gambar 6.,<. 5ambahkan input jumlah barang, tambahkan pula output output diskon dan total yang harus dibayar. Diskon sebesar .P dari 5otal7arga. Diberikan diskon jika jumlah beliW>., selain itu tidak mendapat diskon. 5otal Bayar > 5otal 7arga%Diskon #. Bu*a c nt h "r gra& * n%ersi nilai "ada ga&-ar 6.#. Anda +im *e&-ali Nilai As Single da"at &engganti state&ent I7 dengan state&ent Select...Case.
Select Beri*ut * Case de "r Nilai gra&n8a> Case $s ;= V$ lbl%uruF#Caption lbl2et#Caption = Case $s ;= "V lbl%uruF#Caption lbl2et#Caption = Case $s ;= (" lbl%uruF#Caption lbl2et#Caption = Case $s ;= 6. lbl%uruF#Caption lbl2et#Caption = Case Else lbl%uruF#Caption 9. = lbl2et#Caption End Select End Sub Nilai = t0tNilai#,e0t Private Sub t2t5ilai_Change()

= "A" "Julus" = "!" "Julus" = "C" "Julus" = "D" "Cemidi" = "@" "Aagal"

$ey&ord Is disini untuk menentukan kondisi. Biasa digunakan untuk data numerik. #tau bisa juga memakai kode program seperti berikut2

Private Sub t2t5ilai_Change() Dim Nilai As Single Nilai = t0tNilai#,e0t Select Case Nilai Case V$ ,o .$$ lbl%uruF#Caption lbl2et#Caption = Case "V ,o SR lbl%uruF#Caption lbl2et#Caption = Case (" ,o "S lbl%uruF#Caption lbl2et#Caption = Case 6. ,o (( lbl%uruF#Caption lbl2et#Caption = Case @lse lbl%uruF#Caption lbl2et#Caption = @nd Select @nd Sub

= "A" "Julus" = "!" "Julus" = "C" "Julus" = "D" "Cemidi" = "@" "Aagal"

;. Pern8ataan $ ...L

"

*isual Basic mendukung beberapa -ersi statement Do. 6ooping ;perulangan< dengan menggunakan ;hile mungkin yang paling populer

96

digunakan dalam pemrograman *isual Basic. Seperti Statement IfGThen, do ;hile juga membutuhkan ekpresi perbandingan untuk keluar dari looping a. S8nta*s U&u& #da beberapa syntak penggunaan untuk pernyataan Do..6oop a)
+o Chile :?ondisi; :V! statement; Aoo +o :V! statement; Aoo Chile :?ondisi;

b)

"eterangan 2 *B Statement akan diulang sela&a VkondisiW bernilai 5I?3. "engulangan berhenti bila VkondisiW sudah bernilai =#6S3. c)
+o Bntil ?ondisi V! statement Aoo +o V! statement Aoo Bntil ?ondisi

d)

"eterangan 2 *B Statement akan diulang -. C nt h Pr gra&

sa&"ai VkondisiW bernilai

5I?3. "engulangan berhenti bila VkondisiW sudah bernilai =#6S3. 1. Men&"il*an ang*a 0 sa&"ai 10 di ListB / dengan "erintah $ ...5hile dan $ ...Until. #tur =orm beserta kontrol yang dibutuhkan seperti pada gambar 6./

Gambar -!* Program 7enampilkan ?ngka dengan Do!!!:oop $etik kode programnya seperti berikut ini 2
Pri%ate Su- c&dUntilGClic*'( lst7asil.8lear i>0 Do ?ntil i W 10 lst7asil.#dd:tem X#ngka $e% X N i i>iU1 6oop End SuPri%ate Su- c&d5hileGClic*' < lst7asil.8lear i>0 Do (hile i >V 10 lst7asil.#dd:tem X#ngka $e% X N i i>iU1 6oop End Su-

"enjelasan program 2 $ode program tersebut akan menampilkan hasil yang sama. "erhatikan pada cmd?ntilK8lick;<. "rogram akan dijalankan sa&"ai iW10
Private Sub cmdBntil_Click() i>V10 lst%asil#Clear i = $ Do $edua statement tersebut memiliki arti yang sama lst%asil#AddItem "Ang?a 2eM " Q i i = i / . i ; .$state&ent $ Until dan $ #. C Joop -alah )ntil ganti s8nta*s End Sub

"erhatikan pada cmd(hileK8lick;<. "rogram akan dijalankan sela&a

5hile di atas:

dengan * de "r gra& -eri*ut ini: lihat hasiln8a>

Private Sub cmdChile_Click() lst%asil#Clear i = $ Do lst%asil#AddItem "Ang?a 2eM " Q i 9C i = i / . Joop Ghile i =: .$ End Sub

6. Pern8ataan 5hile...5end "engulangan (hile\(end akan mengeksekusi sekumpulan statement% statement perintah selama suatu kondisi itu benar. 6ooping atau perulangan yang menggunakan (hile..(end ini mempunyai syntak sebagai berikut 2 a. S8nta*s U&u& #da beberapa syntak penggunaan untuk pernyataan (hile...(end
Chile :?ondisi; V! Statement Cend

"eterangan 2 Bika kondisi benar, maka semua statement akan dieksekusi dan ketika mencapai baris (end, control akan kembali lagi ke statement (hile untuk menge-aluasi kembali nilai dari kondisi, jika nilai dari kondisi masih memenuhi syarat atau benar maka proses loopJperulangan akan terjadi lagi. Bika nilai kondisinya Salah, maka program akan keluar dari loop dan mengeksekusi perintah%perintah yang ada setelah (end. -. C nt h Pr gra& 1. 8ontoh Statement (hile berikut akan menge-aluasi nilai numerik yang dimasukkan user le&at keyboard, dan kondisi yang die-aluasi adalah selama nilainya lebih besar atau sama dengan nol, jika nilainya negatif maka program akan berhenti.
Number = $ Ghile Number ;= $

99 Number = Input!o04"Sila?an masu??an nilai +ang lain T"7


Gend

0. 8ontoh 1 di atas bisa dimodifikasi. 6etakkan sebuah command button dan sebuah te1tbo1 pada form kemudian, ketikkan listing program berikut dalam tombol command button tersebut. ;atur posisinya dengan benar<.
Private Sub Command.>clic?47 Number = $ Chile number ;= $ ,otal = ,otal / Number Number = Input!o041Sila?an masu??an nilai +ang lain T37 Cend ,e0t.#,e0t = ,otal @nd Sub

H. Pern8ataan 7 rDNe/t "erulangan dengan =or ... 4e1t merupakan salah satu struktur perulangan yang sering terdapat pada banyak bahasa pemograman, perulangan =or ... 4e1t menggunakan suatu -ariabel yang disebut counter untuk melakukan penambahan secara otomatis, sesuai dengan nilai a&al dari -ariabel tersebut. "erulangan dengan =or digunakan untuk mengulang statement atau satu blok statement berulang kali, sejumlah yang ditentukan. a. S8nta*s U&u&
0O! :pencacah; = :a-al; (O :a?hir; OS(EP :lang?ah;P :blo? ?ode program; 5E'( :pencacah;

VpencacahW adalah -ariabel ;tipe2 integer< yang digunakan untuk menyimpan angka pengulangan. Va&alW adalah nilai a&al dari VpencacahW. VakhirW adalah nilai akhir dari VpencacahW.

100

VlangkahW adalah perubahan nilai VpencacahW setiap pengulangan. Sifatnya optional ;boleh ditulis ataupun tidak<. Bila tidak ditulis maka nilai VlangkahW adalah 1. -. C nt h Pr gra& 1. "rogram menampilkan angka dari 0 sampai 10 dan sebaliknya ;10 sampai 0< #tur =orm dan $ontrol yang dibutuhkan seperti gambar 6./. !anti 8aption pada 8ommand, masing%masing menjadi E=or 4e1t 1E da =or 4e1t0E. $etikkan kode program berikut ini 2
Private Sub cmdEor.>clic?47 K enampil?an ang?a $ sampai .$ di Jist!o0 lst%asil#Clear Eor i = $ ,o .$ lst%asil#AddItem "Ang?a " Q i Ne0t i @nd Sub Private Sub cmdEor'>clic?47 K enampil?an Ang?a .$ sampai $ di Jist!o0 lst%asil#Clear Eor i = $ ,o .$ S,@P M. lst%asil#AddItem "Ang?a " Q i Ne0t i @nd Sub

Bika #nda menginginkan angka dengan kelipatan 0 dst, maka tambahkanlah perintah S53",contoh 2 =or i > 0 5o 10 S53" ,, akan menampilkan angka dari 0 sampai 10 dengan kelipatan ,. 7asilnya 2 0, ,, 6, 9 0. 'enampilkan angka genap pada 6istBo1. Bilangan genap adalah bilangan yang habis dibagi 0. 'emungkinkan user untuk menginputkan batas a&al dan akhir. #tur form dengan meletakkan 6istBo1,0 5e1tBo1 , dan 8ommand untuk proses. Buat properti 8olumn > , untuk 6istBo1

101

!ambar 6.. 'enampilkan bilangan genap dengan =or 4e1t $etikkan kode program seperti berikut
Private Sub cmdProses>Clic?47 Dim i9 A-al9 A?hir As Single lst%asil#Clear A-al = t0tA-al#,e0t A?hir = t0tA?hir#,e0t Eor i = A-al ,o A?hir IF i od ' = $ ,hen lst%asil#AddItem i @nd IF Ne0t i @nd Sub

Bagaimana jika #nda diminta untuk menampilkan bilangan ganjilGG Silakan #nda coba sendiri. +key

C. Latihan#5:7#4 Buat program Iegistrasi 7otel, atur tampilan form beserta kontrol yang dibutuhkn sebagai berikut 2

100

"ada program di atas user dipersilahkan untuk mengisi namanya, jenis kelaminnya laki%laki atau perempuan, kemudian memilih jenis kamar yang diinginkan, kemudian memilih fasilitas apa saja yang diinginkan. 5iap kamar memiliki harga yang berbeda%beda. ?ntuk pilihan jenis kamar gunakan +ption, di sini user hanya dapat memilih salah satu saja. Sedangkan untuk fasilitas dapat menggunakan 8heck, di mana user dapat tidak memilih dan bebas untuk memilih yang mana saja. $ita asumsikan harga kamar adalah sebagai berikut 2 Oenis 4a&ar Standard Suite Sil-er Oenis 7asilitas Sauna =itness 'assage Earga 1.0000 0.0000 /.0000 Earga .0000 .000 1.0000

$emudian tampilkan harga total pembayarannya dalam bentuk 'essage Bo1 dengan klik tombol Daftar. 'inta input pembayaran dengan menggunakan :nputBo1. *alidasilah agar pembayaran mencukupi total pembayaran. Bika pembayaran tidak mencukupi

10,

total pembayaran, maka :nputBo1 akan muncul terus samapi pembayaran mencukupi. Bika terdapat uang kembali tampilkan jumlah uang kembaliannya dengan 'esageBo1. Dan ucapkan terima kasih. Setelah itu resetlah kembali form ke keadaan semula sebelum diisi.

BAB VII 7UNGSI,7UNGSI BA5AAN VB

BAB VII P02CE$U0E $AN 7UNC.I2N BAB VIII SUB02U.INE P02CE$U0E: 7UNC.I2N P02CE$U0E and M2$ULE A. Pendahuluan

10/

Dalam kenyataan seringkali program yang harus ditulis cukup panjang, sehingga kesalahan yang mungkin dibuat oleh seorang programmer semakin besar. ?ntuk mengatasi masalah tersebut dapat dilakukan dengan memecah program tersebut menjadi bagian%bagian kecil ;rutin< tetapi tetap logis. Iutin%rutin kecil tersebut akan membuat penelusuran dan pera&atan program menjadi lebih mudah dan terstruktur. Iutin%rutin kecil tersebut sering disebut dengan nama prosedur. Dalam *isual Basic terdapat 0 macam prosedur yaitu 2 a. "rosedur umum ;general purpose procedure< merupakan prosedur yang ditemukan di dalam daftar Drop Do$n pada jendela kode. b. "rosedur $ejadian ;Event procedure<, prosedur yang berisi kode yang dijalankan ketika suatu kejadian dari kontrol di bangkitkan. Sedangkan prosedur%prosedur yang ditambahkan dalam sebuah program tersebut disebut subprogram. #da 0 jenis subprogram dalam *isual Basic yaitu prosedur subrutin ;subroutine procedures< dan prosedur fungsi ;function procedures<. B. Materi a( Su- 0utin Subrutin merupakan prosedur umum ;general porpuse procedure< yang ditulis dan ditambahkan dalam program. =ormat penulisan sebuah subrutin adalah sebagai berikut2
Sub nama_sub!utin ?(argumen)@ , , , End Sub

Setiap kali prosedur dipanggil, maka pernyataan diantara Sub dan 3nd Sub akan dijalankan. #rgumen pada prosedur adalah nilai yang akan dile&atkan saat pemanggilan prosedur. 8ontoh 2
Sub ,otalPembelian47 I Inisialisasi varibel Dim ,otal As Currenc+ Dim Disc As Single ImendeFinisi?an nilai variabel ,otal = t0t,otal#,e0t Disc = $#' 10. lbl,otal#Caption = ,otal M ,otal 8 Disc @nd Sub

Sedangkan untuk memanggil sebuah subrutin digunakan format sebagai berikut 2


?Call@ Sub5ame ?(Argumen list)@

?ntuk memanggil subrutin dari contoh diatas dapat digunakan kode sebagai berikut2
Call ,otalPembelian47

atau
,otalPembelian

?ntuk memanggil sebuah subrutin dapat digunakan perintah 8all diikuti dengan nama subrutin diikuti dan tanda kurung atau langsung memanggil nama subrutin saja. -( 7ungsi Subrutin dan =ungsi sebenarnya mirip yaitu prosedur umum ;general purpose procedure< yang ditulis dan ditambahkan dalam program. Bedanya =ungsi mengembalikan nilai sedangkan Subrutin tidak. =ormat penulisan sebuah =ungsi adalah sebagai berikut.
0unction nama_0ungsi ?(argumen)@ as ?!eturnDal(6 e@ , , , End 0unction

8ontoh 2
Eunction ,otal>Pembelian4,otal As Currenc+7 I Inisialisasi varibel Dim Disc As Single I endeFinisi?an nilai variabel Disc = $#' ,otal>Pembelian = ,otal M ,otal 8 Disc

@nd Eunction

106

"ada contoh di atas merupakan fungsi 5otal"embelian yang dimodifikasi. 5otal tidak lagi diambil dari nilai te1tbo1 ;t1t5otal<, melainkan dikirim melalui suatu argumen. #rgumen yang dikirimkan melalui suatu subrutin atau fungsi dapat digunakan langsung seperti sebuah -ariabel. ?ntuk memanggil fungsi dari contoh diatas dapat digunakan kode sebagai berikut2
I emasu??an nilai ,otal sebesar '$$ ,otal>Pembelian 4'$$7

c( M dul 'M dule( "enulisan sebuah modul dapat dilakukan pada sebuah file

berekstensi .Bas. =ile tersebut dapat dibuat melalui menu Project-?dd 7odule. Secara default *isual Basic memberikan nama 7odule . "ada 'odule, #nda dapat mendeklarasikan -ariable dengan a&alan D:', "I:*#53 maupun "?B6:8, dimana a&alan D:' dan "I:*#53 membentuk -ariable modul le-el ;hanya berlaku didalam pemakaian -ariable bersangkutan<, sedangkan a&alan "?B6:8 akan membentuk -ariable global yang akan berfungsi bagi keseluruhan program. 8ontoh 2
+im A As Integer Private ! As Integer Public C As Integer IVariabel A adalah modul level IVariabel ! adalah modul level IVariabel C dapat diguna?an Ioleh program ?eseluruhan

Subrutin dapat ditulis pada module. Subrutin tersebut dapat dipanggil kapan saja dari aplikasi yang sama dengan format sebagai berikut2 8ontoh 2
?nama_module,@nama_subrutin

#odule8,(otalPembelian

atau
(otalPembelian

10

"emanggilan dapat dilakukan dengan menyebut nama module terlebih dahulu diikuti dengan tanda titik kemudian nama subrutin atau langsung nama subrutin. d( C nt h Pr gra& 'embuat program untuk mengkalkulasi temperatur 8elcius ke temperatur =ahrenheit. ?ser diminta untuk memasukkan suhu dalam =ahrenheit dengan fasilitas :nputBo1, setelah diklik +$ muncul messagebox yang menampilkan kon-ersi suhu dalam 8elcius. $etikkan kode program berikut ini 2
IEungsi 2onversi 2e Celcius 0unction Celcius(&+era4at) Celcius = 4FDeraDat M ='7 8 ( U R End 0unction Private Sub 0orm_Aoad() I enampil?an Input!o0 untu? Input Suhu dalam Eahrenheit ICelcius4,emp7B memanggil Fungsi Celcius dengan besar suhu Isesuai +ang dimasu??an diinputbo0 IPerintah Cound untu? menampil?an ang?a desimal dengan Imengatur berapa ang?a di bela?ang ?oma Dim ,emp ,emp = Input!o04"Sila?an masu??an suhu dalam Eahrenheit"9 "Suhu"7 sg!o0 "Suhu dalam Celcius adalah B " Q > Cound4Celcius4,emp79 '7 Q " DeraDat"9 vb*2*nl+9 "Suhu dalam Celcius" End Sub

S2AL LA.IEAN

C. Latihan 'odifikasi contoh program kon-ersi suhu di atas, buat supaya user bisa memilih menu untuk kon-ersi suhu. 8ontoh tampilan programnya seperti berikut 2

10C

?ser memasukkan nilai dan memilih satuan suhu yang akan dikon-ersi. ?ser juga menentukan nilai desimal dari hasil yang akan ditampilkan. $emudian secara otomatis, hasil akan ditampilkan dalam 8elcius, =ahrenheit, $el-in dan Ieamur $A7.A0 PUS.A4A

BAB VIII PEM02G0AMAN MUL.IME$IA A. Pendahuluan E5he #merican 7eritage DictionaryE mendefinisikan bah&a multimedia adalah kombinasi dari penggunaan beberapa media seperti film, slide,

109

music,penerangan dengan te1t, image, khusunya untuk tujuan pendidikan dan hiburan. ?nsur%unsur seperti te1t, audio ;narasi, dialog, sound effect<, musik, film, -ideo, fotografi, animasi dan grafik merupakan media pendukung yang tergabung dan terintegrasi menjadi satu%kesatuan karya multimedia. Bentuk interacti-e multimedia termasuk di dalamnya &ebsite, cdrom interacti-e, programJsoft&are, presentasi, tutorial, help sectiondal an bahkan game. Sekarang yang jadi pertanyaan, bagaimana jika produk%produk multimedia tidak dihasilkan dari aplikasi program multimedia G 'ampukah program%program komputer yang sifatnya umum dapat digunakan untuk mendesain produk multimediaG Ba&abannya tentu tergantung pogram itu sendiri, apakah soft&are programnya mendukung konsep multimedia atau tidak. ?mumnya perkembangan teknologi multimedia tidak hanya tergantung pada perkembangan soft&are semata, tetapi terkait dengan perangkat elektronik. B. Materi 1. Dasar "emrograman 'ultimedia *isual basic merupakan salah satu bahasa pemrograman yang mendukung konsep multimedia. Sejak diluncurkan pertama kali, -isual basic yangAhou bekerja di sistem operasi &indo&s terus menambah fasilitas untuk pemrograman multimedia. Salah satu fasilitas tersebut adalah sebuah kontrol #cti-e 9 yang disertakan dalam -isual basic edition dengan nama kontrol multimedia '8: ;'edia 8ontrol :nterface<, misalnya 8D "layer, *8I dan *ideo "layer. Sebenarnya dalam -isual basic masih terdapat tiga kontrol lain seperti '8:(nd1 8ontrol, 'icrosoft #cti-e'o-ie 8ontrol, (indo&s 'edia "layer. 5etapi dari kesemuanya, kontrol multimedia '8: adalah yang terlengkap serta merupakan kontrol langsung berhubungan dengan -isual basic yangAhou melibatkan properti dan e-ent. Sebelum mendesain program multimedia dengan -isual basic 6.0 terlebih dahulu aktifkan kontrol multimedia yang ingin digunakan. 6angkah%langkah untuk mengaktifkan kontrol%kontrol multimedia adalah sebagai berikut 2

110

$lik menu project dan klik menu popup components untukmempersingkat kerja, tekan kombinasi tombol 8trlU5

atau

!ambar C.1 Bagian dari menu project Selanjutnya -isual basic 6.0 menampilkan kotak dialog components, seperti gambar C.0. $lik tab control dan lakukan scrolup ;gulungk e atas< untuk menampilkan kontrol%kontrol multimedia

!ambar C.0 $otak Dialog 8omponents 0. 'enentukan 5ipe "eralatan 'ultimedia Sebelum menggunakan tombol%tombol pada kontrol multimedia, peralatan multimedia perlu diaktifkan dengan -alid yaitu dengan perintah De-ice5ype. 5ujuan dari proses ini adalah agar kontrol tersebut secara otomatis dapat

111

dikonfigurasikan se&aktu program berjalan. "roses penempatan ini biasanya dilakukan le&at kode program dalam suatu procedure, misalnya formKload. 8ontoh penuliasan dari properti De-ice5ype adalah sebagai berikut 2 ''8ontrol1.de-ice5ype>E(a-e#udioE 5abel C.1 "eralatan 'ultimedia 4o. 1 0 , / . 6 "eralatan 'ultimedia *ideo ;file .a-i< #udio 8D Digital 5ape Digital *ideo *ideo Scanner ':D: seLuencer C 9 10 11 *ideotape *ideodisc (a-e ;file .&a-< Buatan pemakai De-4ame #*:*ideo 8D#udio D#5 Digital*ideo '''o-ie Scanner SeLuencer *8I *ideodisc (a-e#udio other $eterangan =ormat -ideo 'icrosoft #*: 8D 'usik melalui dri-e 8D% I+' "eralatan digital tape ;D#5< =ata *ideo digital =ormat film multimedia "eralatan Scanner Data seLuencer ':D: "erekam kaset -ideo "erekam *ideo Disc =ile #udio microsoft &indo&s 5ipe multimedia buatan pemakai

,. $ontrol 'edia "layer $ontrol media player merupakan salahsa tu komponen pada -isual basic 6.0 yang digunakan untuk menjalankan aplikasi -ideo dan audio pada banyak file format multimedia. ?ntuk mengaktifkan kontrol tersebut, langkah%langkah yang dilakukan yaitu 2 6akukan klik pada menu project, components, atau dengan cara lain yaitu dengan melakukan klik kanan pada toolbo1 dank lik menu components.

110

!ambar C., 'enu Shorcut 8omponents Selanjutnya sebuah kotak dialog components ditampilkan dan pilih tab controls. Berikan tanda cek ;a< pada kontrol &indo&s media player. $ontrol ini membutuhkan file yang tersimpan dalam folder system,0 yang bernama 'SD9'.+89

!ambar C./ memilih kontrol media player $lik tombol +$ untuk menutup kotak dialog components dan pada toolbo1 akan terdapat kontrol media player. ?ntuk menempatkan kontrol media player pada form, yaitu klik ikon pada toolbo1 dan lakukan drag pada form untuk menentukan luas lokasi yang digunakan. Sedangkan untuk menghubungkan kontrol media player denganfile multimedia. "erintah yang digunakan adalah 2 'edia"layer1.=ile4ame>"ath N Vnama fileW 'isalnya 2 'edia "layer1.=ile4ame > E32M=ilmM8oba.mpegE 8ontoh 2

11,

'edia "layer1

8ommand Button 1

!ambar C.. 'enggunakan kontrol media player


8ommon Dialog1

$etikan $ode "rogram pada tombol Buka seperti berikut 2 "ri-ate Sub 8ommand1K8lick;< 8ommonDialog1.Sho&+pen 'edia"layer1.=ile4ame > K 8ommonDialog1.=ile4ame 3nd Sub /. $ontrol 'ultimedia 8ontrol 6.0 $ontrol multimedia control 6.0 adalah sebuah kontrol #cti-e9 yang disertakan dalam 'icrosoft *isual Basic "rofesional 3dition. Dengan kontrol ini dapat dibuat program yang mampu menyediakan fungsi%fungsi multimedia pendukung dri-er '8: ;'edia 8ontrol :nterface<, misalnya memutar film, memainkan 8D #udio, merekam (a-e #udio dan sebagainya. Disamping itu kontrol 'ultimedia '8: juga menyediakan sekumpulan tombol bergaya compact disk untuk memainkan dan merekam media pada program anda. $ontrol #cti-e9 'ultimedia 8ontrol 6.0 dapat ditambahkan ke dalam toolbo1 dengan langkah%langkah sebagai berikut 2 1. #ktifkan kotak dialog components dengan cara klik kanan mouse pada toolbo1 atau klik menu project dan pilih menu components.

11/

0. "da tab controls, pilih dan berikan tanda cek pada 'icrosoft 'ultimedia 8ontrol 6.0 adalah '8:.+89 ,. $lik tombol +$ untuk menutup kotak dialog components.

!ambar C.6 'emilih kontrol multimedia control 6.0 /. ?ntuk menempatkan kontrol multimedia control 6.0 pada form, yaitu klik icon pada toolbo1 danish lakukan drag pada form untuk

menentukan luas lokasi yang digunakan. .. $ontrol multimedia control 6.0 mempunyai serangkaian tombol perintah yang berfungsi secara otomatis pabila terdapat peralatan multimedia yang sedang terbuka dan kontrol dinyalakan. 5ombol%tombol tersebut antara lain "re-, 4e1t, "lay, "ause, Back, Step, Stop, Iecord dan eject. 'eskipun anda dapat menambahkan fasilitas khusus untuk tombol%tombol ini yaitu dengan menuliskan e-ent procedure, tetapi anda boleh tidak mengkonfigurasikan lagi mengingat setting tombol yang sudah disediakan dapat langsung digunakan dengan baik. Sebelum anda mengenal lebih jauh tentang fungsi dari kontrol multimedia control 6.0, perlu kiranya dipahami beberapa property khusus yang diediakan oleh kontrol ini, yaitu 2 De-i-e 5ype "roperty ini digunakan untuk menentukan de-ice yang akan digunakan oleh kontrol multimedia control 6.0, yaitu #*:*ideo, D#5, 8D#udio, Digital*ideo, '''o-ie, +ther, +-erlay, Scanner, SeLuencer, *8I atau (a-e#udio. Biasanya kode program diletakkan

11.

dalam e-ent procedure form load agar kontrol secara otomatis dapat dikonfigurasikan se&aktu program berjalan. Bentuk penulisan dari properti de-ice5ype sebagai berikut 2 ''8ontrol.De-ice5ype>De-4ame =ile4ame "roperti ini berisi nama file yang ditentukan untuk dimainkan oleh kontrol multimedia'8: Bentuk penulisaan 2 ''8ontrol.=ilename>Vnama fileW (ait "roperti ini digunakan untuk menentukan agar kontrol menunggu perintah selanjutnya diselesaikan terlebih dahulu sebelum tugas pengendalian dikembalikan pada aplikasi. Bentuk penuliasn 2 ''8ontrol.(ait>VbooleanW 8ommand "roperti ini digunakan untuk memberikan perintah pada kontrol yang akan dieksekusi, yaitu +pen, 8lose, "laye, "ause, Stop, Back, Step, "re-, 4e1t, Seek, Iecord, 3ject, Sound atau Sa-e. Bentuk penulisan 2 ''8ontrol,8ommand>V"erintah StringW Sharable "roperti ini digunakan untuk menentukanagar program lain mampu menggunakan de-ice '8: yang sama. Bentuk penulisan 2 ''8onrol.Sharable>V5rueJ=alseW

116

4otify "roperti ini digunakan agar kontrol multimedia '8: memberitahu atau tidak apabila perintah E+penE dan E"layE telah selesai dilaksanakan. Bentuk penulisan 2 ''8ontrol.4otify>V5rueJ=alseW 8ontoh "rogram 2 Desain =orm seperti berikut 2

!ambar C. 'enggunakan kontrol ''8ontrol $etikan $ode "rogram Seperti Berikut 2 "ri-ate Sub 8ommand1K8lick;< ''8ontrol1.4otify > =alse ''8ontrol1.(ait > 5rue ''8ontrol1.Shareable > =alse 8ommonDialog1.Sho&+pen ''8ontrol1.=ile4ame > K 8ommonDialog1.=ile4ame 5e1t1.5e1t > 8ommonDialog1.=ile4ame ''8ontrol1.8ommand > XopenX ''8ontrol1.8ommand > XplayX 3nd Sub "ri-ate Sub 8ommand0K8lick;< 3nd 3nd Sub .. 'emainkan =ile%=ile *ideo =ile -ideo ;film< adalah file yang berisi rangkaian gambar dan suara yang diolah sedemikian rupa sehingga terbentuk suatu gerakkan yang terus menerus. ?ntuk menghasilkan suatu gerakkan, tentu diperlukan suatu

11

kecepatan yang cukup sehingga dapat mengelabuhi mata orang yang melihat film tersebut. 5erdapat dua kecepatan yang harus dipahami dalam mebuat sebuah animasi pada film. "ertama adalah jumlah gambar per detik yang ditampilkan saat proses presentasi ;playback rate<. $edua adalah jumlah gambar yang berbeda yang muncul per detik ;sampling rateJupdate rate<. =ile -ideo merupakan sarana yang ampuh untuk menambahkan animasi, petunjuk langkah demi langkah, informasi bantuan atau hanya untuk membuat agar program yang dibuat lebih memiliki sentuhan pribadi. a. =ile #*: file #*: ;#udio *ideo :nterlea-ing< merupakan file standart yang dimiliki oleh sistem operasi 'icrosoft (indo&s untuk memainkan data -ideo dan audio secara digital. =ile #*: adalah file hasil kopresi gambar%gambar dan atau suara yang terangkai dan membentuk suatu file baru yang dapat dimainkan secara bergerak dan bersuara. 8ontoh "rogram 2

$etikan $ode "roram Berikut 2 "ri-ate Sub 8ommand1K8lick;< ''8ontrol1.4otify > =alse ''8ontrol1.(ait > 5rue ''8ontrol1.Shareable > =alse ''8ontrol1.De-ice5ype>E#*:*ideoE 8ommonDialog1.Sho&+pen ''8ontrol1.=ile4ame > K 8ommonDialog1.=ile4ame 5e1t1.5e1t > 8ommonDialog1.=ile4ame ''8ontrol1.8ommand > XopenX ''8ontrol1.8ommand > XplayX 3nd Sub

11C

"ri-ate Sub 8ommand0K8lick;< 3nd 3nd Sub b. =ile D#5 =ile D#5 ;Digital #udio 5ape< adalah file yang diproses dengan peralatan digital tape. ?kuran dari file ini cukup besar ibandingkan dengan file standar microsoft yaitu #*:, tetapi gambar yang dihasilkan jauh lebih bagus. Banyak peralatan ;player< yang dapat digunakan untuk menjalankan file D#5 ini. *isual Basic 6.0 sendiri mempunyai kontrol program yang mampu untuk mengoperasikan file tersebut. Salah satu kontrol programnya adalah 'ultimedia '8:. Sedang untuk standar &indo&s dapat digunakan kontrol program &indo&s media player. 8ontoh "rogam 2

'edia "layer1

8ommand Button 1

8ommon Dialog1

$etikan $ode "rogram pada tombol Buka seperti berikut 2 "ri-ate Sub 8ommand1K8lick;< 8ommonDialog1.Sho&+pen 'edia"layer1.=ile4ame > K 8ommonDialog1.=ile4ame 3nd Sub

119

6. 'emainkan =ile #udio (#* dan ':D: a. =ile (#* =ile .(#* ;(a-eform< adalah file untuk menyimpan suara yang direkam dengan teknologi dari micrisift. Dalam lingkungan &indo&s, format file ini telah diakui sebagai format audio standar. $euntungan dari file .(#* adalah anda dapat menyimpan suara apa saja dari berbagai sumber, seperti mikrofon, pemutar 8D atau bahkan tape recorder. Sebelum disimpan pada file .(#*, suara analog harus diubah ke bentuk suara digital, atau dengan kata lain suara analog harus dicuplic dan dikuantisasi terlebih dahulu. Suara analog dapat dicuplic dengan berbagai frek&ensi yaitu C $7A, 11 $7A, 00 $7A. 5entu saja makin tinggi frek&ensi pencuplikan, kualitas suara semakin tinggi. Sebagai contoh, suara yang dicuplic dengan frek&ensi 11 $7A setara dengan suara telepon, sedangkan suara yang dicuplic dengan frek&ensi // $7A setara dengan suara 8D%#udio. ?ntuk kuantisasi, suara yang disimpan menggunakan 16 bit mempunyai kualitas lebih tinggi dibandingkan suara yang disimpan menggunakan C bit saja. $elemahan file .(#* yang paling mencolok adalah ukurannya sangat besar. Sebuah lagu yang bila diputar hanya membutuhkan &aktu beberapa menit saja, dapat memakan ruangan harddisk puluhan 'egabyte. Dalam memainkan file (a-e dengan -isual b asic, anda dapat menggunakan kontrol program yang sudah disediakan oleh -isual basic atau soft&are multimedia lain dan dapat juga dimainkan dengan memanfaatkan fasilitas library E(inmm.dllE. 8ontoh 2 Desain form seperti berikut 2

$etik kode program berikut pada general procedure

100

"ri-ate Declare =unction playsound 6ib K X&inmm.dllbX #lias XplaysoundaX ; K By*al lpsAname #s String, By*al hmodule K #s 6ong, By*al d&flags #s 6ong< #s 6ong 8onst sndKasync > N71 8onst sndKfilename > N700000 8onst sndKsync > N70 8onst sndKnodefault > N70 8onst sndKloop > N7C 8onst sndKnonstop > N710 8onst sndKno&ait > N70000 "ri-ate =unction putarlagu;soundfile #s String< #s Boolean Dim pilihlagu #s Boolean pilihlagu > playsound;soundfile, -b4ull, sdnKfilename U sndKsync U sndKnonsto U sndKnodefault< putarlagu > pilihlagu 3nd =unction $etik kode program pada tombol memutar file (#*e "ri-ate Sub 8ommand1K8lick;< putarlagu ;XD2MdataMlaguMok.&a-X< 3nd Sub b. =ile ':D: sama seperti file .(#*, file ':D: ;'usical :nstruments Digital :nterface< yang berakhiran, .':D juga berhubungan dengan suara. "erbedaan dasar dari file (#* dan file ':D: terletak pada teknik penyimpanannya. $euntungan file .':D dibandingkan dengan file .(#* adalah ukurannya yang sangat kecil. $erugiannya adalah tidak semua suara dapat disimpan dalam file .':D, hanya suara dari alat music tertentu saja yang dapat disimpan. Sebagai contoh, anda tidak 8ontoh "rogram 2 dapat menyimpan suara anjing menggonggong atau singa mengaum pada file .':D.

101

Buat desain form seperti berikut ini 2

$etikan kode program berikut 2 "ri-ate Declare =unction mcisendstring 6ib K X&inmm.dllX #lias XmcisendstringaX ; K By*al lpstrcommand #s String, K By*al lpstrreturnstring #s String, K By*al ureturnlength #s 6ong, K By*al h&ndcallback #s 6ong< #s 6ong "ublic =unction playmidifile; K midifile #s String< #s Boolean Dim lret #s 6ong :f Dir;midifile< > XX 5hen 31it =unction lret > mcisendstring;Xstop midiX, XX, 0, 0< lret > mcisendstring;Xclose midiX, XX, 0, 0< lret > mcisendstring;Xopen seLuencerQX N K midifile N Xalias midiX, XX, 0, 0< lret > mcisendstring;Xplay midiX, XX, 0, 0< playmidifile > ;lret > 0< 3nd =unction "ublic =unction stopmidi;< #s Boolean Dim lret #s 6ong lret > mcisendstring;Xstop midiX, XX, 0, 0< stopmidi > ;lret > 0< lret > mcisendstring;Xclose midiX, XX, 0, 0< 3nd =unction "ri-ate Sub 8ommand1K8lick;< playmidifile ; K XD2MmusucMcoba.midX< 3nd Sub "ri-ate Sub 8ommand0K8lick;< stopmidi 3nd Sub

100

C. Latihan Buatlah program untuk menjalankan =ile *ideo degan esain seperti berikut ini 2

10,

BAB I1 PEM02G0AMAN $A.ABASE

#. Pendahuluan53 Database merupakan bagian dari kehidupan kita sehari%hari meskipun sering tidak disadari. Sebagai contoh di S5':$ Duta Bangsa, database digunakan untuk menyimpan data para mahasis&a, dosen, jad&al kuliah, nilai masing% masing mahasis&a, dan lain%lain. Database merupakan sekumpulan data yang saling berhubungan, didesain untuk menyediakan informasi pada sebuah organisasi. Sedangkan DB'S ;5he Database 'anagement System< merupakan perangkat lunak yang digunakan untuk mendefinisikan, membuat, mengatur, dan menyediakan akses pada database. 'icrosoft #ccess merupakan contoh soft&are IDB'S ;Ielation DB'S<.

B. Materi 1. Me&-uat $ata-ase dan .a-el dengan Visual $ata Manager ?ntuk membuat database dengan *isual Data 'anager, lakukan langkah% langkah sebagai berikut 2 "ilih menu #dd :ns pada menu utama *isual Basic, kemudian pilih *isual Data 'anager "ilih =ile ] 4e& ] 'icrosoft #ccess ] *ersion .0 'DB Berikan nama database;misal db#kademik<, tentukan tempat dimana #nda akan menyimpan database, kemudian klik Sa-e. ?ntuk membuat tabel, klik kanan "roperties, pilih 4e& 5able

10/

Gambar /! 7embuat tabel :sikan nama tabel, klik #dd =ield, isikan nama field, tipe data dan tentukan =iled SiAenya, $lik +$.

Gambar /!% 0truktur Tabel ?ntuk membuat "rimary $ey pada =ield, klik #dd :nde1, isikan 4ame ;misal24:'<, pada #-ailable =ields pilih =ield yang akan dijadikan "rimary $ey ;misal pilih 4:'< 5entukan pilihan :nde1 ; "rimary, ?niLue, :gnore4ulls<. "rimary digunakan sebagai pengenal suatu record, jika tabel yang dihubungkan berhubungan

10.

denga tabel yang lain ;dalam satu tabel hanya boleh ada satu primary key<. ?niLue dipilih jika ingin indeks bersifat unik, :gnore4ulls digunakan untuk mengabaikan field yang kosong.

Gambar /!( 7enentukan Primar) "e) Bika #nda sudah membuat semua =ield yang dibutuhkan, maka klik Build the 5able #. Mengisi $ata Pada .a-el $lik kanan pada nama tabel ;tb'ahasis&a, pilih +pen

Gambar /!* 7embuka Tabel

106

'uncul &indo& Dynaset2'ahasis&a

Gambar /!, 7engisikan data pada tabel =ungsi menu yang ada pada tabel tb'ahasis&a #dd 3dit 2 menambah record baru 2 mengoreksi record

Delete 2 menghapus record aktif =ind 2 mencari record Iefresh 2 menampilkan ulang setelah record mengalami perubahan 8lose 2 menutup tabel 3. $ata Acces 2-)ect '$A2( D#+ ;Data #ccess +bject< merupakan suatu +bject Data #ccess Oang berukuran besar meliputi kemampuan Data Definition, Data 'anipulation dan Database 'aintenance. ?ntuk mengakses database menggunakan D#+ dibutuhkan object Data. Bika dikoneksikan dengan 'icrosoft #ccess D#+ hanya bisa dikoneksikan dengan #ccess 9 .

Gambar /!- Objek Data

10

Beberapa properti yang dimiliki oleh objek Data dapat #nda lihat pada tabel 9.1 5abel 9.1 "roperti +bjek Data Pr "erti 8onnect Database4ame IecordSource 3+= #ction Iecordset 5ype 4eterangan 7ubungan file data, bias bersumber dari #ccess, dBase, 31cel, =o1pro, 6otus, "arado1, dan file 5e1t. 4ama file database 5abel dalam database "engecekan pergerakan kusror. Bika kursor sampai pada akhir file, maka terdapat pilihan property 2 'o-e6ast ;record terakhir<, 3+= ;akhir file<, #dd4e& ;menambah record baru< 5ipe record 2 0%5able, 1%Dynaset, 0%SnapShot

a( 4 ne*si data-ase dengan $A2 ?ntuk koneksi database dengan D#+, #nda harus menambahkan objek Data pada =orm. #da dua cara koneksi database menggunakan D#+ 1. Dengan mengatur property dari objek Data 5abel 9.0 "roperti $ontrol Data db#kademik Pr "ert8 4ame 8aption 8onnect Database4ame Iecordsource Setting Value dat#kademik db#kademik #ccess db#kademik tb'ahasis&a

0. "engaturan dengan mengetikkan kode program seperti berikut 2


Private Sub Eorm>Joad47 datA?ademi?#DatabaseName = App#Path Q "NdbA?ademi?#mdb" datA?ademi?#CecordSource = "tb ahasis-a" @nd Sub

$oneksi database cara pertama masih bersifat statis yang artinya jika programJfile dipindah ke folder atau dri-e lain, maka pengaturan properti Database4ame harus disesuaikan dengan programJfile berada. $oneksi database cara kedua, sifatnya dinamis. A"".Path digunakan untuk mendapatkan folder aktif.

10C

-( C nt h Pr gra& &engguna*an $A2 Berikut adalah contoh program olah data 'ahasis&a di S5':$ Duta Bangsa. #tur =orm seperti pada contoh gambar 9. . !rid menggunakan DB!rid. ?ntuk menambahkan DB!rid di toolbo1 adalah dari menu "roject ] 8omponents, pilih tab 8ontrols% kemudian pilih 'icrosoft Data Bound !rid 8ontrol ..0. #tur properti Datasource dari DB!rid, pilih dat#kademik.

Gambar /!D Program olah data mahasis$a dengan D?O $etik kode program berikut 2 1< $oneksi Database
Private Sub Eorm>Joad47 Data.#DatabaseName = App#Path Q "NA?ademi?#mdb" Data.#CecordSource = " ahasis-a" @nd Sub

109

0< =orm #cti-ate


Private Sub Eorm>Activate47 ?osong td?siap batal#@nabled = Ealse simpan#@nabled = Ealse tambah#SetEocus @nd Sub

,< 5ombol 3dit


Private Sub cmd@dit>Clic?47 IF cmd@dit#Caption = "@dit" ,hen t0tNI #@nabled = ,rue t0tNI #SetEocus cmd@dit#Caption = ")pdate" cmdNe-#@nabled = Ealse cmdDel#@nabled = Ealse @lse Gith datA?ademi?#Cecordset #@dit IPerintah untu? edit data WNama = t0tNama#,e0t WAlamat = t0tAlamat#,e0t W,glJahir = dtpJahir#Value #)pdate @nd Gith cmdCancel>Clic? I memanggil cmdCancel>Clic? @nd IF @nd Sub

/< Sub Iutin


Sub ?osong47 ,e0t.#,e0t = "" ,e0t'#,e0t = "" ,e0t=#,e0t = "" Combo.#,e0t = "" @nd Sub Sub siap47 ,e0t.#@nabled = ,rue ,e0t'#@nabled = ,rue ,e0t=#@nabled = ,rue Combo.#@nabled = ,rue @nd Sub Sub td?siap47 ,e0t.#@nabled = Ealse ,e0t'#@nabled = Ealse ,e0t=#@nabled = Ealse Combo.#@nabled = Ealse @nd Sub

1,0

.< 5ombol 5ambah


Private Sub tambah>Clic?47 tombol = ",A !A%" siap ?osong ,e0t.#SetEocus batal#@nabled = ,rue simpan#@nabled = ,rue tambah#@nabled = Ealse ?eluar#@nabled = Ealse ubah#@nabled = Ealse hapus#@nabled = Ealse @nd Sub

6< 5ombol Simpan


Private Sub simpan>Clic?47 IF tombol = ")!A%" ,hen Data.#Cecordset#@dit Data.#CecordsetWNI = ,e0t.#,e0t Data.#CecordsetWnama = ,e0t'#,e0t Data.#CecordsetWalamat = ,e0t=#,e0t Data.#CecordsetWprodi = Combo.#,e0t Data.#Cecordset#)pdate Data.#CeFresh @nd IF IF tombol = ",A !A%" ,hen Data.#Cecordset#AddNeData.#CecordsetWNI = ,e0t.#,e0t Data.#CecordsetWnama = ,e0t'#,e0t Data.#CecordsetWalamat = ,e0t=#,e0t Data.#CecordsetWprodi = Combo.#,e0t Data.#Cecordset#)pdate Data.#CeFresh @nd IF ?osong td?siap simpan#@nabled = Ealse batal#@nabled = Ealse tambah#@nabled = ,rue ?eluar#@nabled = ,rue ubah#@nabled = ,rue hapus#@nabled = ,rue @nd Sub

1,1

< 5ombol Batal


Private Sub batal>Clic?47 ?osong td?siap batal#@nabled = Ealse simpan#@nabled = Ealse ?eluar#@nabled = ,rue tambah#@nabled = ,rue ubah#@nabled = ,rue hapus#@nabled = ,rue tambah#SetEocus @nd Sub

C< 5ombol ?bah


Private Sub ubah>Clic?47 tombol = ")!A%" siap ,e0t.#SetEocus batal#@nabled = ,rue simpan#@nabled = ,rue tambah#@nabled = Ealse ?eluar#@nabled = Ealse ubah#@nabled = Ealse hapus#@nabled = Ealse @nd Sub

9< 5ombol 7apus


Private Sub hapus>Clic?47 Da-ab = sg!o04"La?in Data tersebut a?an dihapus ###T"9 vbLesNo / vbXuestion9 "2onFirmasi"7 IF Da-ab = " ,hen Data.#Cecordset#Delete Data.#CeFresh @nd IF @nd Sub

10< 5ombol $eluar


Private Sub ?eluar>Clic?47 )nload e @nd Sub

1,0

11< Db!rid1 Io&8ol8hange


Private Sub D!Arid.>Co-ColChange4JastCo- As Variant9 !+Val JastCol As Integer7 ,e0t.#,e0t = Data.#CecordsetWNI ,e0t'#,e0t = Data.#CecordsetWnama ,e0t=#,e0t = Data.#CecordsetWalamat Combo.#,e0t = Data.#CecordsetWprodi @nd Sub

10< !eneral
Dim tombol As String

#D+ ;#cti-e9 Data +bject< merupakan suatu +bject Data yang mempunyai kemampuan Data Definition, Data 'anipulation dan Database 'aintenance serta dapat untuk membangun koneksi dengan beberapa jenis database. ?ntuk mengakses database menggunakan #D+ ada dua fasilitas yang dapat dipakai yaitu #D+D8 #D+D8 adalah sebuah object sehingga dapat dilihat atau ditambahkan di toolbo1. ?ntuk menambahkan objek ini maka lakukan langkah sebagai berikut 2 $lik menu "roject, pilih 8omponent ;atau tekan 8trl%5<, tandai dengan memberi tanda cek pada 'icrosoft #D+ Data 8ontrol 6.0 ;+63DB<. #khiri dengan tekan tombol +$, maka pada 5oolbo1 akan muncul objek #D+D8. #D+DB Salah satu cara menghubungkan aplikasi dengan database melalui kode program, tanpa menggunakan objek. Database yang dapat dikoneksi dengan #D+ selain 'icrosoft #ccess, dapat juga dengan =o1pro, +DB8, S)6Ser-er atau 'yS)6.

1,,

9. 4 ne*si data-ase dengan A$2$B Di dalam *isual Basic, +bject #D+DB yang sering digunakan adalah #D+DB.8onnection dan #D+DB.Iecordset. ?ntuk dapat membuat suatu -ariable dari #D+DB ini kita harus terlebih dahulu memilih references di dalam *isual Baic yaitu 'icrosoft #cti-e9 Data +bject. :kuti langkah berikut 2 "ilih menu "roject ] Ieferences "ilih 'icrosoft #cti-e9 Data +bjects 0.1 6ibrary ] $lik +$ 'odule sering digunakan di dalam pendeklarasian 8onnection dan Iecordset untuk penggunaan database , sehingga +bject 8onnection dan Iecordset tersebut dapat digunakan pada semua bagian di dalam project yang anda buat. C nnecti n digunakan untuk melakukan koneksi ke database yang dipilih dengan perintah open ataupun mengeksekusi sintaks%sintaks S)6 dengan perintah e1ecute. ?ntuk membuka koneksi ke database gunakan perintah open yang diikuti oleh connection string yang dapat dihapalkan ataupun menggunakan bantuan seperti control #D+D8 atau file e1tension .?D6 0ec rdset digunakan untuk menampung data ;bisa berasal dari 1J lebih tabel< yang merupakan hasil eksekusi perintah sLl select, synta12 #elect Hnama kolomI +rom Hnama tabelI where HkondisiI 5ambahkan 'odule pada program *B #nda ;"roject ] #dd 'odule<, kemudian ketikkan kode program koneksi database berikut di 'odule #nda
Public Con As AD*D!#Connection Public Sub *penConnection47 Set Con = Ne- AD*D!#Connection Con#ConnectionString = "Provider= icrosoFt#Jet#*J@D!#6#$Y" Q > "Data Source=" Q App#Path Q "NdbA?ademi?#mdbY" Q > "Persist Securit+ InFo=Ealse" Con#CursorJocation = ad)seClient Con#*pen @nd Sub

7asil dari koneksi di atas adalah 8on akan membuka koneksi ke database dengan nama db#kademik.mdb yang terletak di folder aktif db#kademik.mdb.

1,/

C nt h Pr gra& &engguna*an A$2$B Berikut adalah contoh program olah data 'ahasis&a di S5':$ Duta Bangsa. #tur =orm seperti pada contoh gambar 9.C. 4:' akan diinput secara otomatis berdasarkan "rogram Studi, Benjang, 5ahun 'asuk dan urutan mahasis&a saat daftar ulang. Benjang Sarjana mena&arkan dua program studi yaitu 2 Sistem :nformasi dan teknik :nformatika. Benjang Diploma , mena&arkan dua program studi yaitu 2 'anajemen :nformatika dan 5eknik $omputer. $ita akan menggunakan 'S=le1!rid untuk menmpilkan data. 8ara menambahkan project 'S=le1!rid 2 "ilih menu "roject ] 8omponents, "ilih 'icrosoft =le1!rid 8ontrol 6.0 ] $lik +$ Berikut tampilan =orm yang digunakan 2

Gambar /!E Program olah data mahasis$a dengan ?DOD'

1,.

$etik kode program berikut 2 1. $oneksi Database $etik kode program koneksi database berikut pada 'odule
Public Con As AD*D!#Connection Public rs ahasis-a As AD*D!#Cecordset Public Sub *penConnection47 Set Con = Ne- AD*D!#Connection Con#ConnectionString = "Provider= icrosoFt#Jet#*J@D!#6#$Y" Q > "Data Source=" Q App#Path Q "NdbA?ademi?#mdbY" Q > "Persist Securit+ InFo=Ealse" Con#CursorJocation = ad)seClient Con#*pen @nd Sub

0. $ode program di =ormK6oad


Private Sub Eorm>Joad47 *penConnection I emanggil ?one?si database dari odule

I eng?one?si?an rs ahasis-a ?e tabel tabel ahasis-a Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a"9 Con9 ad*penStatic9 adJoc?*ptimistic I emanggil sub ,ampilData IDiguna?an untu? menampil?an data di Arid ,ampilData @nd Sub

,. $ode program untuk mengatur !rid


Sub AturArid47 Arid#Co-s = . Arid#Cols = ( Arid#ColGidth4$7 Arid#ColGidth4.7 Arid#ColGidth4'7 Arid#ColGidth4=7 Arid#ColGidth467 Arid#,e0t Arid#,e0t Arid#,e0t Arid#,e0t Arid#,e0t @nd Sub

= = = = =

($$ .$$$ '$$$ '$$$ '$$$ $7 .7 '7 =7 67 = = = = = "No" "NI " "Nama" "Alamat" "Program Studi"

atri04$9 atri04$9 atri04$9 atri04$9 atri04$9

1,6

/. $ode program untuk menampilkan data di !rid


Sub ,ulisData47 Dim i As Integer i = $ Do Ghile Not rs ahasis-a#@*E i = i / . Arid#AddItem 4i Q vb,ab Q rs ahasis-a4$7 Q vb,ab Q > rs ahasis-a4.7 Q vb,ab Q rs ahasis-a4'7 Q vb,ab Q > rs ahasis-a4=77 rs ahasis-a# oveNe0t Joop @nd Sub Sub ,ampilData47 Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a " Q > "*rder !+ NI "9 Con9 ad*penStatic9 adJoc?*ptimistic AturArid ,ulisData @nd Sub

.. $ode program Sub Iutin


Sub ?osong47 ,e0t.#,e0t = "" ,e0t'#,e0t = "" ,e0t=#,e0t = "" Combo.#,e0t = "" @nd Sub Sub siap47 ,e0t.#@nabled = ,rue ,e0t'#@nabled = ,rue ,e0t=#@nabled = ,rue Combo.#@nabled = ,rue @nd Sub Sub td?siap47 ,e0t.#@nabled = Ealse ,e0t'#@nabled = Ealse ,e0t=#@nabled = Ealse Combo.#@nabled = Ealse @nd Sub

6. $ode program =orm #cti-ate


Private Sub Eorm>Activate47 ?osong td?siap batal#@nabled = Ealse simpan#@nabled = Ealse tambah#SetEocus @nd Sub

1,

. $ode program 5ombol 5ambah


Private Sub tambah>Clic?47 tombol = ",A !A%" siap ?osong ,e0t.#SetEocus batal#@nabled = ,rue simpan#@nabled = ,rue tambah#@nabled = Ealse ?eluar#@nabled = Ealse ubah#@nabled = Ealse hapus#@nabled = Ealse @nd Sub

C. $ode program 5ombol Simpan


Private Sub simpan>Clic?47 IF tombol = ")!A%" ,hen Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a -here NI = I" Q ,e0t.#,e0t Q "I"9 Con9 ad*penStatic9 adJoc?*ptimistic Gith rs ahasis-a WNI = ,e0t.#,e0t Wprodi = Combo.#,e0t Wnama = ,e0t'#,e0t Walamat = ,e0t=#,e0t #)pdate @nd Gith @nd IF IF tombol = ",A !A%" ,hen Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a"9 Con9 ad*penStatic9 adJoc?*ptimistic Gith rs ahasis-a #AddNe- I enambah?an data baru WNI = ,e0t.#,e0t Wprodi = Combo.#,e0t Wnama = ,e0t'#,e0t Walamat = ,e0t=#,e0t #)pdate @nd Gith @nd IF ?osong td?siap simpan#@nabled = Ealse batal#@nabled = Ealse tambah#@nabled = ,rue ?eluar#@nabled = ,rue ubah#@nabled = ,rue hapus#@nabled = ,rue ,ampilData @nd Sub

1,C

9. $ode "rogram 5ombol Batal


Private Sub batal>Clic?47 ?osong td?siap batal#@nabled = Ealse simpan#@nabled = Ealse ?eluar#@nabled = ,rue tambah#@nabled = ,rue ubah#@nabled = ,rue hapus#@nabled = ,rue tambah#SetEocus @nd Sub

10. $ode "rogram 5ombol ?bah


Private Sub ubah>Clic?47 tombol = ")!A%" siap ,e0t.#SetEocus @nd Sub

11. $ode "rogram 5ombol 7apus


Private Sub hapus>Clic?47 tombol = "%AP)S" siap ,e0t.#SetEocus @nd Sub

10. $ode "rogram 5ombol $eluar


Private Sub ?eluar>Clic?47 )nload e @nd Sub

1,. $ode "rogram !eneral Deklaration


Dim tombol As String

1/. $ode "rogram 5e1t1 $eypress


Private Sub ,e0t.>2e+Press42e+Ascii As Integer7 Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a Ghere NI = I" Q ,e0t.#,e0t Q "I"9 Con9 ad*penStatic9 adJoc?*ptimistic IF 2e+Ascii = .= ,hen Gith rs ahasis-a IJi?a dite?an @nter

1,9

IF tombol = ")!A%" ,hen IF #@*E ,hen sg!o0 "NI " Q ,e0t.#,e0t Q " belum ada" ,e0t.#SetEocus @lse ,e0t'#SetEocus ,e0t'#,e0t = Wnama ,e0t=#,e0t = Walamat Combo.#,e0t = Wprodi @nd IF @lseIF tombol = "%AP)S" ,hen IF #@*E ,hen sg!o0 "NI " Q ,e0t.#,e0t Q " belum ada" ,e0t.#SetEocus @lse ,e0t'#,e0t = Wnama ,e0t=#,e0t = Walamat Combo.#,e0t = Wprodi sg!o04"Apa?ah Anda +a?in menghapus NI " Q > ,e0t.#,e0t Q " T"9 vbLesNo9 "%apus Data"7 IF pesan = vbLes ,hen Set rs ahasis-a = Ne- AD*D!#Cecordset rs ahasis-a#*pen "Select 8 Erom ahasis-a -here NI Q ,e0t.#,e0t Q "I"9 Con9 ad*penStatic9 adJoc?*ptimistic rs ahasis-a#Delete @nd IF @nd IF @nd IF @nd Gith ,ampilData @nd IF Ihan+a boleh diisi ang?a atau bac?space IF Not 42e+Ascii ;= Asc4"$"7 And 2e+Ascii := Asc4"R"7 *r 2e+Ascii = vb2e+!ac?7 ,hen !eep 2e+Ascii = $ @nd IF @nd Sub pesan =

= I"

1/0

C. Latihan6#5:7#4 Buka kembali program yang sudah #nda buat seperti gambar 9.C. 5ambahkan 5abel Dosen dan 5abel 'ata $uliah pada Database #kademik yang sudah #nda buat. #tur =ield yang dibutuhkan untuk masing%masing tabel. 5ambahkan =orm untuk +lah Data Dosen dan =orm untuk +lah Data 'ata $uliah dan ketik kode programnya. $A7.A0 PUS.A4A

1/1

BAB 1 MENCE.A4 $A.A A. Pendahuluan 'encetak data merupakan hasil akhir dari rangkaian proses pengolahan data untuk tujuan pelaporan atau dokumentasi. 'isalnya proses cetak yang digunakan untuk pelaporan adalah cetak k&itansi pembayaran dari transaksi pembelianJpenjualan yang telah dilakukan. 'icrosoft *isual Basic 6.0 mempunyai beberapa cara dalam mencetak data, diataranya le&at kode program yang dirancang sendiri, data report atau memanfaatkan Ieport designer seperti cristal report dan sebagainya. 'encetak le&at kode program memang lebih mudah disbanding le&at report designer tetapi kemampuan cetaknya kurang begitu bagus. Sedangkan cristal report sendiri sebenarnya adalah program terpisah dari 'icrosoft -isual basic 6.0, tetapi karena komponen inimendukung kinerjanya maka banyak programmer yang suka membuat laporan dengan bantuan cristal report. B. Materi 1. Menceta* $ata dengan 4 de Pr gra& Sebelum membahas bagaimana cara mencetak data ke printer, terlebih dahulu akan dipaparkan bagaimana cara mencetak data ke form. "ada pembahasan sebelumnya sudah dipaparkan tentang mencetak data ke form, dimana proses cetaknya lebih ditekankan pada konsep perulangan ;looping<. Data yang dicetak dapat ditampung dalam suatu konstanta atau -ariabel. "erintah dasar untuk mencetak data dengan menggunakan kode%kode program adalah 2 ? -)e*@.Print ?data 8ang a*an diceta*@ C nt h > a( Menceta* $ata *e 7 r& dengan 4 de Pr gra& D:' ?capan #s String ?capan > ESelamat Datang di S5':$ Duta BangsaE "rint ?capan

1/0

!ambar 10.1 7asil 8etakan ke =orm -( Menceta* data *e Printer dengan 4 de Pr gra& D:' ?capan #s String ?capan > ESelamat Datang di S5':$ Duta BangsaE "rinter."rint ?capan 5erdapat beberapa perintah cetak yang sering digunakan pada proses cetak ke printer dari kode%kode program, seperti dijelaskan pada tabel berikut ini 2 5abel 10.1 "erintah 'encetak Data "erintah "rinter.8urrent9 > 0 "rinter.8urretO > 0 $eterangan "erintah ini digunakan untuk mengatur posisi head printer pada a&al kertas yaitu pojok kiri atas kertas. Data%data yang sedang dicetak akan masuk ke dalam "rint Spooler yaitu daftar antrian cetak dari "rinter.3ndDoc printer yang aktif. Sedang untuk melaksanakan pencetakan secara nyata harus ditambahkan perintah "rinter.3ndDoc "erintah ini menyababkan head printer berpindah ke a&al halaman berikutnya. 'enghentikan proses cetak secara mendadak ;biasanya diikuti oleh kondisi tertentu< 'enentukan bentuk orientasi cetakan data untuk cetakan portrait ;tegak< atau 6andscape ;mendatar< 4ilai 1 "ortrait dan 0 6andscape

"rinter.4e&"age "rinter.$illDoc "rinter.+rientation > VnumberW

c( C nt h Pr gra& $esain 7 r& se"erti -eri*ut >

1/,

4 de "r gra& untu* ! r& Ceta*


Private Sub ?eluar>Clic?47 @nd @nd Sub Private Sub previe->Clic?47 EormS"#Sho@nd Sub Private Sub printer>Clic?47 Dim 0no As String printer#Current< = $ printer#CurrentL = $ no = . printer#EontSiHe = .6 printer#Eont!old = ,rue printer#Print ,ab4.(7Y "Japoran Data ahasis-a" printer#EontSiHe = .$ printer#Print "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" Q > "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" printer#Print ,ab4.7Y "No# "Y printer#Print ,ab4(7Y "NI "Y printer#Print ,ab4.(7Y "Nama ahasis-a"Y printer#Print ,ab46$7Y "Alamat"Y printer#Print ,ab4(V7Y "Program Studi"Y Data.#Cecordset# oveEirst Do Ghile Not Data.#Cecordset#@*E Gith Data.#Cecordset printer#Print ,ab4.7Y Str4no7Y printer#Print ,ab4(7Y #Eields4$7Y printer#Print ,ab4.(7Y #Eields4.7Y printer#Print ,ab46$7Y #Eields4'7Y

1//

printer#Print ,ab4(V7Y #Eields4=7Y @nd Gith no = no / . Data.#Cecordset# oveNe0t Joop @nd Sub

#. Menceta* $ata dengan $ata 0e" rt Data Ieport adalah suatu laporan mengenai database yang disediakan oleh *isual Basic. 6aporan ini dapat terbentuk jika Data 3n-ironment sudah didesain. Data En%ironment merupakan penghubung antara database yang telah didesain dengan Data Ieport yang akan ditampilkan. a( Mengguna*an $ata En%ir n&ent Buka kembali program yang #nda buat seperti pada gambar 9. ;Bab 9<. 5ambahkan Data 3n-ironment dengan cara sebagai berikut 2 "astikan Data 3n-ironment dan Data Ieport sudah diaktifkan dengan cara 2 pilih "roject ] 8omponents, pilih tab Designers, #ktifkan ;centang< Data 3n-ironent dan Data Ieport% $lik +$. "ilih "roject ] #dd Data 3n-ironment. $lik kanan 8onnection1%"ilih "roperties. "ada bagian tab "ro-ider pilih 'icrosoft Bet ,..1 +63 DB "ro-ider ;untuk #ccess 199 <, 'icrosoft Bet /.0 +63 DB "ro-ider ;untuk #ccess 0000%000,<.

1/.

Gambar 1!% 7enggunakan Data Environment $lik 4e1tWW, pada bagian 0elect or enter a database name, bro&se nama database ;db#kademik.mdb< $lik tombol 5est 8onnection, jika sukses maka muncul messagebo1 seperti berikut 2

Gambar 1!( 7essage'ox "oneksi database sukses 5ambahkan 8ommand untuk koneksi ke tabel, $lik kanan pada 8onnection1, pilih #dd 8ommand. $lik kanan pada 8ommand1 pilih properties. "ada 8onnection pilih 8onnection1. "ada Database +bject pilih 5able. "ada +bject 4ame pilih tb'ahasis&a. $lik +$

1/6

Gambar 1!* Properti 8ommand untuk koneksi ke tabel $lik +$. $lik tanda pada 8ommand1, maka field%field dari tabel

tb'ahasis&a akan ditampilkan

Gambar 1!, +ield-field pada 8ommand 5tb7ahasis$a6 -( Mengguna*an $ata 0e" rt Setelah Data 3n-ironment kita atur, kemudian buat laporannya menggunakan Data Ieport. :kuti langkah berikut 2 "ilih menu "roject ] #dd Data Ieport

1/

Bagian Ieport 7eader "age 7eader Detail "age =ooter Ieport =ooter

5abel 10.1 Bagian Data Ieport 4eterangan Berisi judul laporan Berisi judul kolom data yang akan ditampilkan Berisi nama field yang akan ditampilkan pada kolom Berisi catatan kaki di akhir kolom%kolom report Berisi catatan kecilJketerangan report

Selain jendela Data Ieport, pada toolbo1 akan muncul sebuah tab Data Ieport yang berisi 2

Gambar 1!- Toolbox pada tab Data 3eport 5abel 10.0 5oolbo1 pada tab Data Ieport Na&a 4 ntr l 4eterangan Ipt6abel $ontrol untuk memberikan label pada report Ipt5e1tBo1 $ontrol serupa te1tbo1 yang hanya menampilkan teks database saat runtime Ipt:mage $ontrol untuk menempatkan image pada report Ipt6ine $ontrol yang dapat menggambar garis secara horiAontal, -ertical maupun diagonal IptShape $ontrol untuk menggambar shape pada report Ipt=unction $ontrol yang dapat menset hasil perhitungan data 6etakkan kontrol Ipt6abel pada bagian Ieport 7eader. ?bah "ropery 8aption menjadi E6aporan Data ahasis&aE, dan propery #ligment menjadi 0%rptBustify8enter $lik DataIeport1, ubah property $ataS urce, pilih Data3n-ironment1 :si $ataMe&-er denga nama 8ommand1 $lik menu bar 5ind 6: "ilih Cascade. 6etakkan Bendela $ata En%ir n&ent1 di atas jendela $ata 0e" rt. Drag and Drop field%filed yang ada di Bendela Data3n-ironent1 ke Bendela Data Ieport di bagian $etail.

1/C

"indahkan bagian yang diakhiri tanda D2E ke bagian Page Eeader

Gambar 1!D 7eletakkan +ield-+ield ke Data 3eport Desain akhir Data Ieport adalah sebagai berikut 2

Gambar 1!E Desain ?khir Data 3eport

3. Mencta* data dengan Cr8stal 0e" rt Selain Data Ieport, kita juga bisa menggunakan 8rystal Ieport dalam pembuatan laporan. 8rystal Ieport adalah suatu form khusus berbentuk seperti lembaran format naskah yang ingin dicetak. 8rystal Ieport dapat berdiri sendiri dapat pula menjadi satu dengan project *isual

1/9

Basic yang anda buat. Bila berdiri sendiri, report tersebut pun dapat dipanggil dari project *isual Basic dengan 8rystal Ieport 8ontrol sehingga report yang telah anda buat dapat digunakan oleh beberapa project sekaligus. a( Me&-uat La" ran dengan Cr8stal 0e" rt "ertama%tama #nda harus :nstall dulu Soft&are 8rystal Ieport. "ada kesempatan kali ini menggunakan 8rystal Ieport C... Buka program 8rystal Ieport , maka pada tampilan &indo&s akan muncul tampilan seperti gambar di ba&ah ini

Gambar 1!/ 8r)stal 3eport Galler) "ilihlah Ieport 31pert dan Standard 31pert untuk laporan standard dan pilih +$ untuk melanjutkan. Setelah itu akan muncul semua property dari report yang akan kita buat, yang akan ditampilkan seperti gambar 2

1.0

Gambar 1! 1 0tandard 3eport Expert "ertama kali kita harus memasukkan datasource dari report yang akan kita buat ;darimana data yang mau kita tampilkan< dengan memilih 1 dari ketiga jenis data yang telah tersedia ;Database, 8rystal S)6 )uery, dan 8rystal Dictionary<. ?ntuk menampilkan data dari database seperti 'icrosoft #ccess, kita akan memilih Database. "ilih Database=ile dan pilih find database file dan click add, cari database yang akan ditampilkan. "ilihlah datasource yang diinginkan dan click #dd, setelah itu click 8lose, maka dengan ini, report yang akan kita buat telah ditentukan datasourcenya. Setelah itu pilihlah tombol 4e1t untuk menuju bagian field yang akan kita tampilkan di dalam report. "ilihlah field%field yang akan kita tampilkan di report, dan bila sudah selesai, click finish untuk menuju design report kita. Buat desainya, simpan Ieport, misal rpt'ahasis&a -( 4 ne*si Cr8stal 0e" rt dengan Visual Basic "astikan 8rystal Ieport sudah terinstall dan #nda sudah selesai membuat desain reportnya dan sudah #nda simpan dalam satu folder dengan program *isual Basic yang #nda buat.

1.1

Buka kembali program yang telah #nda buat di Bab 9 ;!ambar 9.C<. 5ambahkan tombol untuk cetak data. 5ambahkan object 8rystal Ieport di toolbo1 dengan cara pilih "roject % 8omponents ] "ilih tab 8ontrols % pilih 8rystal Ieport *ie&er 8ontrol tekan +$. $emudian tambahkan objek tersebut ke dalam =orm Berikut kode program untuk mencetak data di *B
I enceta? semua data mahasis-a Sub Ceta?All 47 rpt hs#Ceset rpt hs#Connnect = Con rpt hs#CeportEileName = App#Path Q "NCpt ahasis-a#rpt" rpt hs#Gindo-State = crpt a0imiHed rpt hs#CetrieveDataEiles rpt hs#Action = . @nd Sub I enceta? berdasar?an Program Studi Sub Ceta?Prodi47 rpt hs#Ceset rpt hs#Connnect = Con rpt hs#CeportEileName = App#Path Q "NCptDep#rpt" rpt hs#SelectionEormula = 4"Ztb ahasis-a#Prodi[=I" Q cbProdi#,e0t Q "I"7 rpt hs#Gindo-State = crpt a0imiHed rpt hs#CetrieveDataEiles rpt hs#Action = . @nd Sub

Beberapa property dari 8rystal Ieport yang biasa digunakan di dalam aplikasi. .0eset % Digunakan untuk mengembalikan kondisi report ke dalam kondisi semula, biasanya properti ini digunakan pertama kali sebelum properti lainnya . .C nnect % Digunakan untuk menenetukan jenis conection yang digunakan +leh report tersebut, biasanya diisi oleh #D+DB.8onnection yang kita buat. .0e" rt7ileNa&e % Digunakan untuk menentukan report yang akan kita tampilkan Beserta path dari report tersebut. panggil adalah store"rocedur yang memiliki parameter .St rePr cedurePara& % Digunakan bila datasource dari report yang akan kita -ariabel

1.0

.7 r&ula % Digunakan apabila di dalam report yang kita buat, terdapat =ormula yang ingin kita isi dari *B. .Selecti n7 r&ula % Digunakan untuk memfilter data dari report yang ingin kita =ield .5ind 6State %Digunakan untuk menentukan &indo&state dari report pada saat pertama kali tampil apakah fullscreen, minimiAe dsb. .Acti n %Digunakan untuk memunculkan report yang akan kita tampilkan dengan memberinya angka 1 ;.#ction>1< S2AL LA.IEAN C. Latihan Buka kembali program yang sudah #nda buat pada soal 6atihan Bab 9. Buatlah 6aporan untuk Data Dosen dan Data 'ata $uliah dengan Data Ieport dan 8rystal Ieport. tampilkan dengan menyebutkan nama Datasource.4ama

$A7.A0 PUS.A4A

1.,

BAB 1I ME0ANCANG MENU P02G0AM A. Pendahuluan 'enu adalah serangkaian pilihan yang dapat dipilih ;di%klik atau di% enter< dengan tujuan untuk melakukan tugas%tugas tertentu. ?mumnya suatu menu diitempatkan pada bagian atas dari programaplikasi. 5etapipada aplikasi tertentu ;misalnya aplikasi pada &ebsite<, pembuatan menusudah mengacu pada pemakaian gambar%gambar yang menarik. ?mumnya gambar%gambar tersebut dibuat oleh soft&are lain seperti photoshop, corel atau bahkan soft&are animasi seperti flash. 'enu utama ;menu bar< dalam suatu proyekmerupakan lokomotif utama dalam suatu program karena keberadaann menu bertujuan untuk mengintegrasikan program%program yang digunakan. Dengan demikian pemakai program tidak kesulitan dalam menguunakan program yang sedang dijalankan. 'enu bar terletak di ba&ah title bar adalah tempat keberadaan menu, yang menampilkan 'enu 5itle. Bika suatu menu di klik ;misalnya menu file<, sebuah daftar yang berisi perintah%perintah ;menu item< terbuka ke arah ba&ah. 'enu item terdiri dari perintah%perintah ;seperti 4e&, +pen sampai dengan e1it<, separator bar, dan sub menu title. Sedang masing%masing item mempunyai tugast ersendiri sesuai dengan kode program yang dipasangkan pada menu tersebut. suatu program. Beberapa item menu menghasilkan proses secara langsung, misalnya menu e1it akan langsung menutup

1./

!ambar 11.1 3lemen%elemen menu pada -isual basic

!ambar 11.0 8ontoh menu program aplikasi

1..

B. MateriI: 1. M$I 7 r& "ada *isual Basic, anda dapat mengembangkan aplikasi dengan interface sebagai berikut 2

SD: ;Single Document :nterface< 'D: ;'ultiple Document :nterface<

"ada aplikasi SD:, setiap form merupakan form%form yang berdiri sendiri, #plikasi SD: pada &indo&s terdapat pada aplikasi seperti 4otepad, (ord"ad dan "aint. Sedangkan aplikasi seperti *isual Basic menggunakan 'D:, yaitu terdiri dari suatu 'D:=orm, dan didalamnya merupakan form%form anak ;'D:8hild<. #da beberapa hal yang harus diperhatikan dalam penggunaan 'D:=orm adalah 2 Didalam satu project hanya dapat terdiri dari satu 'D:=orm #nda tidak dapat menempatkan kontrol%kontrol secara langsung pada 'D:=orm, kecuali kontrol yang memiliki properti #lignment, atau menempatkannya diatas kontainer seperti "icturebo1. #nda tidak dapat menggunakan metode penggambaran ;"rint, 6ine, 8ircle, dan "Set< seperti pada form umumnya. a( Me&-uat M$I 7 r& di Visual Basic $ita harus tambahkan dengan klik pada menu "roject % #dd 'D: =orm. $lik +pen. "ada "roject 31plorer akan muncul dua buah form yaitu =orm1 dan 'D:=orm1. ?bahlah properties 'D:8hild dari =orm1 menjadi true. 7al ini menandakan =orm1 adalah sebagai form anak dari 'D:=orm1. Settinglah pada "roject "roperties agar =orm utamnya adalah 'D:=orm1. -( 4ara*teristi* dari M$I 7 r& Semua 8child =orm tidak dapat dipindahkan keluar dari 'D: =orm. $etika suatu 8hild =orm diminimiAe, akan menjadi icon diba&ah 'D: =orm.

1.6

#nda dapat menentukan apakah 8hild =orm secara otomatis ditampilkan atau tidak dengan menggunakan properti #utoSho&8hildren pada 'D:=orm. Bika pada 8hild =orm ada menu, maka menu akan ditampilkan pada 'D:form menu. "ada 'D:form anda tidak dapat menempatkan kontrol%kontrol -isible yang tidak mendukung alignment, kecuali kalau anda menempatkannya kedalam suatu kontainer seperti "icturebo1, dan 5oolbar. Sedangkan kontrol non% -isible seperti 5imer dan 8ommonDialog bo1 dapat ditempatkan diatas 'D:=orm. c( Menda"at*an M$I Child 8ang sedang a*ti!. ?ntuk mendapatkan form%form yang sedang aktif di dalam suatu 'D:=orm, anda dapat menggunakan properti #cti-e=orm, contoh 2
Private Sub #+$0orm_Euer6Bnload(Cancel As $nteger% Bnload#ode As $nteger) IF Not e#ActiveEorm Is Nothing ,hen sg!o0 " asih ada Eorm +ang a?tiF" Cancel = ,rue @nd IF End Sub

d( Mengatur M$I Child dala& )endela M$I ! r& #nda dapat menggunakan metoda #rrange untuk mengatur penyusunan form%form yang sedang aktif didalam suatu 'D: =orm. 'etoda #rrange ini diikuti oleh suatu parameter yang menentukan jenis penyusunan yang akan dilakukan, contoh 2
Private Sub Arrange End Sub Private Sub Arrange End Sub Private Sub Arrange End Sub Private Sub Arrange End Sub mnu(ileHoriFontall6_Click() vb,ile%oriHontal mnu(ileDerticall6_Click() vb,ileVertical mnuCascade_Click() vbCascade mnuArrange$cons_Click() vbArrangeIcons

1.

#. Menu Edit r "embuatan menu pada *isual Basic dapat dilakukan dengan bantuan 'enu 3ditor yang terdapat pada 'enu 5ools%'enu 3ditor. "ada dasarnya setiap item menu memiliki 8aption dan sebuah 4ama. #nda dapat membentuk $unci #kses dengan menggunakan tanda N ;ampersand< pada 8aption dari menu tersebut. ?ntuk membuat menu anda cukup mengetikan 8aption dan 4ame, selanjutnya klik pada 4e1t, dan ketikkan menu yang berikutnya, sampai selesai. Selanjutnya adalah menbuat Sub 'enu dengan melakukan klik pada panah kanan dan sebaliknya. a( Me&-uat Menu di M$I 7 r&

Gambar

!( ;indo$ 7enu Editor

Setelah menu diatur pada (indo& 'enu 3ditor, maka berikut hasilnya 2

Gambar

!* Tampilan menu )ang dibuat di 7DI+orm

?ntuk memunculkan fr'ahasis&a pada saat klik menu 'ahasis&a maka ketikkan kode berikut pada jendela 'D:=orm kode editor.

1.C

Private Sub mn hs>Clic?47 Fr ahasis-a#Sho@nd Sub

-( Me&-uat P " U" Menu "ada *isual Basic, anda dapat membuat menu pop up dengan memanfaatkan menu 3ditor untuk mendefinisikan nama kelompok menu "op ?p beserta Sub 'enunya, dan menonaktifkan option *isible dari kelompok menu Private Subtersebut. DIEorm> ouseDo-n4!utton As Integer9 ShiFt As
Integer9 < As Single9 L As Single7 IF !utton And vbCight!utton ,hen Popup enu mnAtur @nd IF @nd Sub

Sehingga kalau dilakukan klik kanan pada form akan menanpilkan suatu "op?p menu yang berupa Sub 'enu dari mn#tur.

Gambar

!, Tampilan Pop 2p 7enu di 7DI+orm

1.9

C. LatihanOALLATIHAN Buka kembali program yang sudah #nda buat pada Bab 9. $oneksikan dengan 8rystal Ieport ;rpt'ahasis&a<. 5ambahkan 'D:=orm dan tambahkan menu 6aporan untuk menampilkan laporan 'ahasis&a, Dosen, 'ata $uliah dan laporan lain yang dibutuhkan. $A7.A0 PUS.A4A

160

BAB 1II 7ILE E1E $AN SE.UP E1E

A. Pendahuluan Suatu program aplikasi yang telah dibuat dengan -isual basic 6.0 ingin didistribusikan ke pengguna yang lain. "rosesnya tidak semudah yang kita bayangkan, misalnya denganmengcompile -isual basic project yang telah dibuat menjadi file .31e. selanjutnya file .31e ini dicopykan ke computer lain. 6angkah ini jelas salah karena untuk bias berjalan di computer lain masih dibutuhkan file%file pendukung. B. Materi

1. 7ile E/e
Setelah selesai membuat project anda dapat menyimpannya dan membuat file e1e nya. Bika program aplikasi yang sudah dibuat belum dicompile dalam bentuk 393 maka akan dibutuhkan *B setiap kali menjalankannya. #gar user yang lain bisa juga menjalankan program yang telah kita buat, maka program yang telah selesai kita buat harus di compile dulu dalam bentuk e1e. ?ntuk membuat =ile 393 buka kembali projek ;@.*B"< yang telah selesai anda buat ;misalnya projek mahasis&a yang telah kita buat< kemudian klik menu =ile% 'ake "roject.e1e lalu simpan file .e1e tersebut dan lanjutkan mengklik +$ 5unggu sampai proses kompilasi selesai dan coba keluar dari *isual Basic. 6alu jalankan file.e1e yang telah anda buat. #. Setu" E/e Selain file .e1e yang lebih ngetrend lagi yaitu file setup.e1e. 'embuat file Setup.e1e tidaklah sesulit yang dibayangkan hanya dengan beberapa klik anda sudah dapat membuat file Setup.e1e.

161

?ntuk membuat setup.e1e kita harus mengaktifkan terlebih dahulu "ackage N Deployment (iAard. $lik 'enu #dd :ns ] #dd :ns 'anager, kemudian aktifkan "ackage and Deployment (iAard.

!ambar 10.1 #dd%:ns 'anager ?ntuk membuat Setup.e1e menu #dd%:ns % "ackage N Deployment (iAard b sehingga akan tampil &indo& seperti gambar diba&ah ini.

Gambar %!% Package and Deplo)ent ;i>ard

160

$emudian klik bro&se untuk mencari tempat folder projek yang telah kita buat dan simpan. 8ari file .-bp yang telah anda buat, pastikan anda juga telah membuat file .e1e dalam satu folder yang sama. $emudian lanjutkan dengan mengklik "ackage

!ambar 10., $otak Dialog "ackage and Deployment (iAard Bro&se sudah dibuat. 8ompile 2 digunakan untuk melakukan proses kompilasi program dari proyek yang pernah dibuat. $arena masih baru, klik tombol compile ini. 5etapi jika file proyeknya sudah pernah di compile, pilih tombol recompile untuk melakukan proses kompilasi ulang. 8ancel 2 pilihan ini akan membatalkan seluruhproses yang 2 digunakan untuk mencari file e1e dari project yang

sedang anda kerjakan. Setelah diklik "ackage akan muncul &indo& seperti gambar 10.0

Gambar %!* Package and Deplo)ent ;i>ard-Package T)pe

16,

"ilih "ackage type > Standard Setu" Pac*age. 6anjutkan dengan mengklik 4e1t Setelah itu akan muncul &indo& yang meminta anda untuk menyimpan hasil kompilasi Setup.e1e. "ilih tempat folder yang anda inginkan $emudian klik 4e1t. 'aka muncul (indo& yang menampilkan file%file yang akan dipackage. Bika #nda menggunakan database ;misal 2 db#kademik.mdb< dan file database tersebut belum ada di list, maka tekan tombol #dd untuk menambahkan file database tersebut.

Gambar %!, Package and Deplo)ent ;i>ard-Included +iles Setelah anda klik 4e1t akan muncul (indo& 8ab +ptions, pilih pada defaultnya yaitu Single 8ab, kemudian lanjutkan dengan klik 4e1t. Setelah anda klik 4e1t akan muncul (indo& :nstallation 5itle, masukkan sesuai dengan nama project yang kita buat. $emudian lanjutkan dengan mengklik 4e1t. Setelah anda klik 4e1t akan muncul (indo& Start 'enu :tems, pilih pada defaultnya, lanjutkan dengan mengklik 4e1t Setelah anda klik 4e1t akan muncul (indo& :nstall 6ocation yang memberitahu ke kita tempat J lokasi instalasi, biarkan pada defaultnya, lanjutkan dengan mengklik 4e1t

16/

Setelah anda klik 4e1t akan muncul (indo& Shared =iles, lanjutkan dengan mengklik 4e1t. Sehingga akan muncul &indo& =inished, biarkan pada defaultnya, kemudian klik =inish. 5unggu beberapa saat sampai hasil kompilasinya selesai. :nstall hasil setup file yang sudah #nda buat. Balankan dari start menu &indo&s.

C. Latihan Buatlah setup file dari program yang #nda buat. :nstall setup file tersebut, dan jalankan program yang sudah #nda instaal dari Start 'enu $A7.A0 PUS.A4A

16.

BAB 1III MEMBUA. SIS.EM SIMPAN PINOAM 42PE0ASI

A. Pendahuluan Sistem simpan pinjam koperasi, terdapat data master data bunga dan data nasabah, sedangkan proses transaksi terdapat transaksi simpan, pinjam, pengembalian dan setoran. ?ntuk laporan yang dibutuhkan laporan nasabah, laporan pinjam, laporan simpan, laporan pengembalian dan laporan setoran. B. Materi 1. Buat database koperasi.mdb

0. Buat 5abel yang dibutuhkan dalam sistem simpan pinjam koperasi a< Buat 5abel 4asabah dengan struktur tabel seperti berikut 2 =ield 4ame 4oKrek nama BKkel 5empatKlhr 5glKlahir 5ype te1t te1t te1t te1t date . 0. 1 00 C (idth :nde1 primary

166

agama alamat SaldoKspn SaldoKpjm

te1t te1t currency currency

1 ,0 C C

b< Buat tabel pengambilan dengan struktur table seperti berikut 2 =ield 4ame 4oKtrans no%rek 5glKtrans BmlKambil c< 5ype te1t te1t date currency (idth . . C C :nde1 primary

Buat tabel pinjam dengan struktur table seperti berikut 2 =ield 4ame 4oKtrans no%rek 5glKtrans BmlKpinjam 5ype te1t te1t date currency . . C C (idth :nde1 primary

d< Buat tabel setoran dengan struktur table seperti berikut 2 =ield 4ame 4oKtrans no%rek 5glKtrans BmlKsetor e< 5ype te1t te1t date currency . . C C (idth :nde1 primary

Buat tabel simpan dengan struktur table seperti berikut 2 =ield 4ame 4oKtrans no%rek 5glKtrans BmlKsimpan 5ype te1t te1t date currency (idth . . C C :nde1 primary

f<

Buat tabel bunga dengan struktur table seperti berikut 2 =ield 4ame BungaKspn BungaKpjm 5ype single single / / (idth :nde1 "rimary primary

g< Buat tabel pass&ord dengan struktur table seperti berikut 2

16

=ield 4ame pass&ord nama

5ype 5e1t te1t 10 10

(idth

:nde1 "rimary

,. Buat Desain =orm untuk memanipulasi data a< Desain form login

$ode "rogram 2 Data1.Iecordset.Seek X>X, 5e1t0.5e1t :f Data1.Iecordset.=ields;Xpass&ordX< > 5e1t0.5e1t 5hen ok.Set=ocus 3lse 'sgBo1 X"ass&ord SalahX, -b+$+nly, X"esan2X 5e1t0.Set=ocus 3nd :f salah2 3nd Sub "ri-ate Sub selesaiK8lick;< 3nd 3nd Sub "ri-ate Sub te1t1Kkeypress;$ey#scii #s :nteger< :f $ey#scii > 1, 5hen 5e1t0.Set=ocus 3nd :f 3nd Sub "ri-ate Sub te1t0Kkeypress;$ey#scii #s :nteger< :f $ey#scii > 1, 5hen ok.Set=ocus 3nd :f 3nd Sub

16C

b< Desain form bunga

$ode "rogram 2 "ri-ate Sub batalK8lick;< 5e1t1.*isible > 5rue 5e1t0.*isible > 5rue 5e1t,.*isible > =alse 5e1t/.*isible > =alse mati edit.3nabled > 5rue keluar.3nabled > 5rue batal.3nabled > =alse ok.3nabled > =alse 3nd Sub "ri-ate Sub DB!rid1KIo&8ol8hange;6astIo& #s *ariant, By*al 6ast8ol #s :nteger< +n 3rror !o5o 1 tampilan 12 3nd Sub "ri-ate Sub editK8lick;< +n 3rror !o5o 1 5e1t1.*isible > =alse 5e1t0.*isible > =alse 5e1t,.*isible > 5rue 5e1t/.*isible > 5rue 5e1t,.3nabled > 5rue 5e1t/.3nabled > 5rue 5e1t,.Back8olor > N7C000000. 5e1t/.Back8olor > N7C000000.

169

keluar.3nabled > =alse edit.3nabled > =alse ok.3nabled > 5rue batal.3nabled > 5rue 12 3nd Sub "ri-ate Sub =ormK6oad;< +n 3rror !o5o 1 5e1t,.*isible > =alse 5e1t/.*isible > =alse mati batal.3nabled > =alse ok.3nabled > =alse 12 3nd Sub "ri-ate Sub keluarK8lick;< ?nload 'e 3nd Sub "ri-ate Sub okK8lick;< +n 3rror !o5o 1 Data1.Iecordset.:nde1 > X1bKspnX Data1.Iecordset.Seek X>X, 5e1t1.5e1t Data1.Iecordset.:nde1 > X1bKpjmX Data1.Iecordset.Seek X>X, 5e1t0.5e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQbungaKspn > 5e1t,.5e1t Data1.IecordsetQbungaKpjm > 5e1t/.5e1t "esan > 'sgBo1;XOakin Simpan 7asil 3ditan GGX, -bOes4o, X"3'B3I:5#7?#4X< :f "esan > -bOes 5hen Data1.IecordsetQbungaKspn > 5e1t,.5e1t Data1.IecordsetQbungaKpjm > 5e1t/.5e1t Data1.Iecordset.?pdate Data1.Iefresh 3lse 3nd :f 3nd :f edit.3nabled > 5rue keluar.3nabled > 5rue batal.3nabled > =alse ok.3nabled > =alse mati 12 3nd Sub

1 0

"ri-ate Sub tampilan;< +n 3rror !o5o 1 (ith Data1.Iecordset 5e1t1.5e1t > QbungaKspn 5e1t0.5e1t > QbungaKpjm 3nd (ith 12 3nd Sub "ri-ate Sub mati;< +n 3rror !o5o 1 5e1t1.3nabled > =alse 5e1t0.3nabled > =alse 5e1t,.3nabled > =alse 5e1t/.3nabled > =alse 5e1t1.Back8olor > N7C000000/ 5e1t0.Back8olor > N7C000000/ 5e1t,.Back8olor > N7C000000/ 5e1t/.Back8olor > N7C000000/ 12 3nd Sub "ri-ate Sub te1t,Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t/.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t/Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen ok.Set=ocus 3nd :f 12 3nd Sub

1 1

c<

Desain =orm 4asabah

$ode "rogram 2 "ri-ate Sub b;< +n 3rror !o5o 1 Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 1,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K

1 0

;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 11< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 9< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ C< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ < U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 6< U K Data1.IecordsetQsaldoKpjm

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

1 ,

Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ .< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ /< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ ,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 0< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 1< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate DataC.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

1 /

:f Date % DataC.IecordsetQtglKtrans V> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub a;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 1,< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 10< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 11< U K Data1.IecordsetQsaldoKspn

1 .

Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 10< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 9< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ C< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ < U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 6< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

1 6

:f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U Data1.IecordsetQsaldoKspn< @ .< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U Data1.IecordsetQsaldoKspn< @ /< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U Data1.IecordsetQsaldoKspn< @ ,< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U Data1.IecordsetQsaldoKspn< @ 0< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U Data1.IecordsetQsaldoKspn< @ 1< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate Data .Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data .IecordsetQtglKtrans V> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn

0.0000000000,< @

0.0000000000,< @

0.0000000000,< @

0.0000000000,< @

0.0000000000,< @

Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub c;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast

1 C

Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit

1 9

+n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data..Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data..IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data..IecordsetQsspn Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f

1C0

3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub d;< +n 3rror !o5o 1 Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast

1C1

:f Date % Data/.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t

1C0

Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data/.Iecordset.'o-e6ast Data6.Iecordset.'o-e6ast :f Date % Data/.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data6.IecordsetQnoKrek Data1.IecordsetQsaldoKpjm > Data6.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub =ormK?nload;8ancel #s :nteger< c

1C,

d 3nd Sub "ri-ate Sub =ormK#cti-ate;< +n 3rror !o5o 1 Data1.Iecordset.:nde1 > X1nasabahX +n 3rror Iesume 4e1t Data1.Iecordset.'o-e6ast a b 12 3nd Sub "ri-ate Sub =ormK6oad;< +n 3rror !o5o 1 &arnaKmati mati simpan0.*isible > =alse 12 3nd Sub "ri-ate Sub DB!rid1K8hange;< :f Data1.IecordsetQjKkel > X(X 5hen DB!rid1.8olumns;/< > X(#4:5#X 3lse DB!rid1.8olumns;/< > X"I:#X 3nd :f 3nd Sub "ri-ate Sub DB!rid1KIo&8ol8hange;6astIo& #s *ariant, By*al 6ast8ol #s :nteger< +n 3rror !o5o 1 tampilan 12 3nd Sub "ri-ate Sub hapusK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX 5hen 'sgBo1 X$lik Data yang #kan Dihapus Dulu Di !rid GGX, -b+$+nly, XpesanX DB!rid1.3nabled > 5rue DB!rid1.#llo&Delete > 5rue 3lse (ith Data1.Iecordset :f 4ot .4o'atch 5hen "esan > 'sgBo1;XOakin #kan 'enghapus nasabah ber no rekening X N QnoKrek N X ...GGX, -bOes4o, XpesanX<

1C/

:f "esan > -bOes 5hen pan .Delete Data1.Iefresh DB!rid1.Iefresh kosong 3nd :f 3nd :f 3nd (ith 3nd :f +n 3rror !o5o 0 5ambah.Set=ocus +n 3rror Iesume 4e1t Data1.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub refresK8lick;< +n 3rror !o5o 1 Data1.Iefresh DB!rid1.Iefresh =+I'K4#S#B#7.Iefresh +n 3rror Iesume 4e1t Data1.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub selesaiK8lick;< ?nload 'e 3nd Sub "ri-ate Sub batalK8lick;< +n 3rror !o5o 1 tombolKbatal &arnaKmati simpan0.*isible > =alse simpan.*isible > 5rue tampilan refres.3nabled > 5rue 5ambah.Set=ocus +n 3rror Iesume 4e1t Data1.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub simpan0K8lick;< pan +n 3rror !o5o 1

1C.

Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, 5e1t1.5e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQnoKrek > 5e1t1.5e1t Data1.IecordsetQnama > 5e1t,.5e1t :f +ption1.*alue > 5rue 5hen Data1.IecordsetQjKkel > +ption1.8aption 3lse:f +ption0.*alue > 5rue 5hen Data1.IecordsetQjKkel > +ption0.8aption 3nd :f Data1.IecordsetQtempatKlhr > 5e1t/.5e1t Data1.IecordsetQtglKlahir > D5"icker1.*alue :f 8ombo0.5e1t > X:slamX 5hen 8ombo0.5e1t > X1X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X$ristenX 5hen 8ombo0.5e1t > X0X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X$atolikX 5hen 8ombo0.5e1t > X,X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X7induX 5hen 8ombo0.5e1t > X/X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > XBudhaX 5hen 8ombo0.5e1t > X.X Data1.IecordsetQagama > 8ombo0.5e1t 3nd :f Data1.IecordsetQtlp > 5e1t..5e1t Data1.IecordsetQalamat > 5e1t6.5e1t "esan > 'sgBo1;XOakin Simpan 7asil 3ditan GGX, -bOes4o, X"3'B3I:5#7?#4X< :f "esan > -bOes 5hen Data1.Iecordset.?pdate Data1.Iefresh DB!rid1.Iefresh 3lse simpan0.3nabled > =alse 3nd :f 3nd :f Data1.Iecordset.:nde1 > X1nasabahX +n 3rror Iesume 4e1t Data1.Iecordset.'o-e"re-ious tombolKsimpan &arnaKmati simpan.*isible > 5rue simpan0.*isible > =alse

1C6

selesai.Set=ocus 12 3nd Sub "ri-ate Sub 5ambahK8lick;< +n 3rror !o5o 1 kosong auto tombolKtambah &arnaKhidup refres.3nabled > =alse 5e1t,.Set=ocus 12 3nd Sub "ri-ate Sub editK8lick;< +n 3rror !o5o 1 &arnaKhidup tombolKtambah simpan.*isible > =alse simpan0.*isible > 5rue 5e1t0.Set=ocus 12 3nd Sub "ri-ate Sub simpanK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX +r 5e1t,.5e1t > XX +r K 5e1t/.5e1t > XX +r 8ombo0.5e1t > XX +r K 5e1t..5e1t > XX +r 5e1t6.5e1t > XX 5hen 'sgBo1 XSilahkan 6engkapi DatanyaQQX, -b+$+nly U -b31clamation, X"3I:4!#5#4X :f 5e1t1.5e1t > XX 5hen 5e1t1.Set=ocus 3lse:f 5e1t,.5e1t > XX 5hen 5e1t,.Set=ocus 3lse:f 5e1t/.5e1t > XX 5hen 5e1t/.Set=ocus 3lse:f 5e1t..5e1t > XX 5hen 5e1t..Set=ocus 3lse:f 5e1t6.5e1t > XX 5hen 5e1t6.Set=ocus 3lse:f 8ombo0.5e1t > XX 5hen 8ombo0.Set=ocus 3nd :f 3lse pan Data1.Iecordset.:nde1 > X1nasabahX

1C

Data1.Iecordset.Seek X>X, 5e1t1.5e1t :f Data1.Iecordset.4o'atch 5hen Data1.Iecordset.#dd4e& Data1.IecordsetQnoKrek > 5e1t1.5e1t Data1.IecordsetQnama > 5e1t,.5e1t :f +ption1.*alue > 5rue 5hen Data1.IecordsetQjKkel > +ption1.8aption 3lse:f +ption0.*alue > 5rue 5hen Data1.IecordsetQjKkel > +ption0.8aption 3nd :f Data1.IecordsetQtempatKlhr > 5e1t/.5e1t Data1.IecordsetQtglKlahir > D5"icker1.*alue :f 8ombo0.5e1t > X:slamX 5hen 8ombo0.5e1t > X1X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X$ristenX 5hen 8ombo0.5e1t > X0X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X$atolikX 5hen 8ombo0.5e1t > X,X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > X7induX 5hen 8ombo0.5e1t > X/X Data1.IecordsetQagama > 8ombo0.5e1t 3lse:f 8ombo0.5e1t > XBudhaX 5hen 8ombo0.5e1t > X.X Data1.IecordsetQagama > 8ombo0.5e1t 3nd :f Data1.IecordsetQtlp > 5e1t..5e1t Data1.IecordsetQalamat > 5e1t6.5e1t Data1.Iecordset.?pdate DB!rid1.Iefresh 3lse 'sgBo1 X 4o Iekening Sudah #da,Badi 5idak Boleh samaQX, -b+$+nly U -b8ritical, X$3S#6#7#4X simpan.3nabled > =alse 3nd :f Data1.Iecordset.:nde1 > X1nasabahX +n 3rror Iesume 4e1t Data1.Iecordset.'o-e6ast tombolKsimpan &arnaKmati 5ambah.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub kosong;<

1CC

+n 3rror !o5o 1 5e1t1.5e1t > XX 5e1t0.5e1t > XX 5e1t,.5e1t > XX 5e1t/.5e1t > XX 5e1t..5e1t > XX 5e1t6.5e1t > XX 8ombo1.5e1t > XX 8ombo0.5e1t > XX +ption1.*alue > =alse +ption0.*alue > =alse D5"icker1.*alue > Date 12 3nd Sub "ri-ate Sub mati;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 12 3nd Sub "ri-ate Sub pan;< +n 3rror !o5o 1 Dim i #s :nteger, panbar;,0000< #s String "rogressBar1.'in > 6Bound;panbar< "rogressBar1.'a1 > ?Bound;panbar< "rogressBar1.*isible > 5rue "rogressBar1.*alue > "rogressBar1.'in =or i > 6Bound;panbar< 5o ?Bound;panbar< "rogressBar1.*alue > i 4e1t i "rogressBar1.*isible > =alse "rogressBar1.*alue > "rogressBar1.'in 12 3nd Sub "ri-ate Sub tombolKsimpan;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue edit.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub tombolKtambah;<

1C9

+n 3rror !o5o 1 5ambah.3nabled > =alse edit.3nabled > =alse 7apus.3nabled > =alse selesai.3nabled > =alse simpan.3nabled > 5rue batal.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub tombolKbatal;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue edit.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue 12 3nd Sub "ri-ate Sub &arnaKhidup;< +n 3rror !o5o 1 5e1t0.3nabled > 5rue 5e1t,.3nabled > 5rue 5e1t/.3nabled > 5rue 5e1t..3nabled > 5rue 5e1t6.3nabled > 5rue +ption1.3nabled > 5rue +ption0.3nabled > 5rue 8ombo1.3nabled > 5rue 8ombo0.3nabled > 5rue D5"icker1.3nabled > 5rue 5e1t0.Back8olor > N7C000000. 5e1t,.Back8olor > N7C000000. 5e1t/.Back8olor > N7C000000. 5e1t..Back8olor > N7C000000. 5e1t6.Back8olor > N7C000000. +ption1.Back8olor > N7C0000006 +ption0.Back8olor > N7C0000006 8ombo1.Back8olor > N7C000000. 8ombo0.Back8olor > N7C000000. 12 3nd Sub "ri-ate Sub &arnaKmati;< +n 3rror !o5o 1

190

5e1t1.3nabled > =alse 5e1t0.3nabled > =alse 5e1t,.3nabled > =alse 5e1t/.3nabled > =alse 5e1t..3nabled > =alse 5e1t6.3nabled > =alse +ption1.3nabled > =alse +ption0.3nabled > =alse D5"icker1.3nabled > =alse 8ombo1.3nabled > =alse 8ombo0.3nabled > =alse 5e1t1.Back8olor > N7C000000/ 5e1t0.Back8olor > N7C000000/ 5e1t,.Back8olor > N7C000000/ 5e1t/.Back8olor > N7C000000/ 5e1t..Back8olor > N7C000000/ 5e1t6.Back8olor > N7C000000/ +ption1.Back8olor > N7C0000006 +ption0.Back8olor > N7C0000006 8ombo1.Back8olor > N7C000000/ 8ombo0.Back8olor > N7C000000/ 12 3nd Sub "ri-ate Sub tampilan;< +n 3rror !o5o 1 (ith Data1.Iecordset 5e1t1.5e1t > QnoKrek 5e1t0.5e1t > Qnis 5e1t,.5e1t > Qnama 8ombo1.5e1t > Qkelas :f Data1.IecordsetQjKkel > X"X 5hen +ption1.*alue > 5rue 3lse2 +ption0.*alue > 5rue 3nd :f 5e1t/.5e1t > QtempatKlhr 5e1t..5e1t > Qtlp 5e1t6.5e1t > Qalamat D5"icker1.*alue > QtglKlahir :f Data1.IecordsetQagama > X1X 5hen 8ombo0.5e1t > X:slamX 3lse:f Data1.IecordsetQagama > X0X 5hen 8ombo0.5e1t > X$ristenX 3lse:f Data1.IecordsetQagama > X,X 5hen 8ombo0.5e1t > X$atolikX 3lse:f Data1.IecordsetQagama > X/X 5hen 8ombo0.5e1t > X7induX 3lse:f Data1.IecordsetQagama > X.X 5hen

191

8ombo0.5e1t > XBudhaX 3nd :f 3nd (ith 12 3nd Sub "ri-ate Sub te1t1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t0.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t0Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t,.Set=ocus 3nd :f :f 4ot :s4umeric;8hr;$ey#scii<< 5hen $ey#scii > 0 3nd :f 12 3nd Sub "ri-ate Sub te1t,Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 8ombo1.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub combo1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen +ption1.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub option1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen +ption0.Set=ocus 3nd :f 12 3nd Sub

190

"ri-ate Sub option0Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t/.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t/Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 8ombo0.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub combo0Kkeypress;$ey#scii #s :nteger< :f $ey#scii > 1, 5hen 5e1t..Set=ocus 3nd :f 3nd Sub "ri-ate Sub te1t.Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t6.Set=ocus 3nd :f :f 4ot :s4umeric;8hr;$ey#scii<< 5hen $ey#scii > 0 3nd :f 12 3nd Sub "ri-ate Sub te1t6Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen simpan.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub auto;< +n 3rror !o5o 1 Dim urutan #s String @ . Dim hitung #s Byte (ith Data1.Iecordset +n 3rror Iesume 4e1t

19,

Data1.Iecordset.'o-e6ast :f .Iecord8ount > 0 5hen urutan > X00001X 3lse .'o-e6ast hitung > *al;Iight;.=ields;XnoKrekX<, .<< U 1 urutan > Iight;X00000X N hitung, .< 3nd :f 5e1t1 > urutan 3nd (ith 12 3nd Sub "ri-ate Sub cariK8lick;< Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, 5e1t9.5e1t :f Data1.Iecordset.4o'atch 5hen 'sgBo1 X5idak #da Data 5ersebut QQQX 5e1t9.Set=ocus 3lse 5e1t9.Set=ocus 3nd :f 3nd Sub d< Desain =orm 5ransaksi "injam

$ode "rogram 2 "ri-ate Sub b;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 1,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate

19/

3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 11< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 9< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ C< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

19.

Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ < U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 6< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ .< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ /< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ ,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

196

;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 0< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 1< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans V> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub c;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen

19

Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast

19C

:f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub

199

"ri-ate Sub DB8ombo1K8hange;< +n 3rror !o5o 1 (ith Data1.Iecordset Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, DB8ombo1.5e1t :f 4ot .4o'atch 5hen 5e1t0.5e1t > Qnama +n 3rror Iesume 4e1t 5e1t,.5e1t > QsaldoKpjm 3lse 3nd :f 3nd (ith Data1.Iecordset.:nde1 > X1nasabahX 12 3nd Sub

"ri-ate Sub DB!rid1KIo&8ol8hange;6astIo& #s *ariant, By*al 6ast8ol #s :nteger< +n 3rror !o5o 1 tampilan DB!rid1.Iefresh 12 3nd Sub "ri-ate Sub =ormK#cti-ate;< +n 3rror !o5o 1 Data1.Iecordset.:nde1 > X1nasabahX Data0.Iecordset.:nde1 > X1pinjamX +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast b 5ambah.Set=ocus 12 3nd Sub "ri-ate Sub =ormK?nload;8ancel #s :nteger< c 3nd Sub "ri-ate Sub hapusK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX 5hen 'sgBo1 X$lik Data yang #kan Dihapus Dulu Di !rid GGX, -b+$+nly, XpesanX DB!rid1.3nabled > 5rue DB!rid1.#llo&Delete > 5rue

000

3lse (ith Data0.Iecordset :f 4ot .4o'atch 5hen "esan > 'sgBo1;XOakin #kan 'enghapus data "injam tersebut..GGX, -bOes4o, XpesanX< +n 3rror Iesume 4e1t Data1.Iecordset.:nde1 > X1pjmX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f "esan > -bOes 5hen pan .Delete (ith Data/.Iecordset :f 4ot .4o'atch 5hen .Delete 3nd :f 3nd (ith +n 3rror Iesume 4e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > ;*al;5e1t,.5e1t< % *al;5e1t/.5e1t<< Data1.Iecordset.?pdate Data1.Iefresh bersih 3nd :f Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh kosong 3nd :f 3nd :f 3nd (ith 3nd :f +n 3rror !o5o 0 +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub bersih;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1spn1X Data/.Iecordset.Seek X>X, 5e1t,.5e1t :f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQsspn > ;*al;5e1t,.5e1t< % *al;5e1t/.5e1t<< Data/.Iecordset.?pdate Data/.Iefresh 3nd :f

001

Data/.Iefresh Data/.Iefresh DB!rid1.Iefresh kosong 12 3nd Sub "ri-ate Sub refresK8lick;< +n 3rror !o5o 1 =+I'K":4B#'.Iefresh Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub selesaiK8lick;< ?nload 'e 3nd Sub "ri-ate Sub 5ambahK8lick;< +n 3rror !o5o 1 kosong auto tombolKtambah &arnaKhidup DB8ombo1.Set=ocus 12 3nd Sub "ri-ate Sub batalK8lick;< +n 3rror !o5o 1 kosong tombolKbatal &arnaKmati simpan0.*isible > =alse simpan.*isible > 5rue tampilan 12 3nd Sub "ri-ate Sub =ormK6oad;< +n 3rror !o5o 1 mati &arnaKmati kosong simpan0.*isible > =alse

000

12 3nd Sub "ri-ate Sub coba;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1pjm0X Data/.Iecordset.Seek X>X, 5e1t,.5e1t :f Data/.Iecordset.4o'atch 5hen Data/.Iecordset.#dd4e& Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQspjm > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< Data/.Iecordset.?pdate 3lse:f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQsspn > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< Data/.Iecordset.?pdate Data/.Iefresh 3nd :f DB!rid1.Iefresh 12 3nd Sub "ri-ate Sub pan;< +n 3rror !o5o 1 Dim i #s :nteger, panbar;,0000< #s String "rogressBar1.'in > 6Bound;panbar< "rogressBar1.'a1 > ?Bound;panbar< "rogressBar1.*isible > 5rue "rogressBar1.*alue > "rogressBar1.'in =or i > 6Bound;panbar< 5o ?Bound;panbar< "rogressBar1.*alue > i 4e1t i "rogressBar1.*isible > =alse "rogressBar1.*alue > "rogressBar1.'in 12 3nd Sub "ri-ate Sub simpanK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX +r DB8ombo1.5e1t > XX +r 5e1t/.5e1t > XX 5hen 'sgBo1 XSilahkan 6engkapi DatanyaQQX, -b+$+nly U -b31clamation, X"3I:4!#5#4X :f 5e1t1.5e1t > XX 5hen 5e1t1.Set=ocus 3lse:f DB8ombo1.5e1t > XX 5hen DB8ombo1.Set=ocus

00,

3lse:f 5e1t/.5e1t > XX 5hen 5e1t/.Set=ocus 3nd :f 3lse pan Data0.Iecordset.:nde1 > X1pinjamX Data0.Iecordset.Seek X>X, 5e1t1.5e1t (ith Data1.Iecordset Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f 4ot 5e1t,.5e1t > 0 5hen 'sgBo1 X'aaf #nda belum melunasi pinjamanX U 8hr;1,< K U 8hr;1,< U X Badi 5idak boleh 'eminjam 6agi X, -b+$+nly, X"eringatanX &arnaKmati 3lse :f Data0.Iecordset.4o'atch 5hen Data0.Iecordset.#dd4e& Data0.IecordsetQnoKtrans > 5e1t1.5e1t Data0.IecordsetQtglKtrans > D5"icker1.*alue Data0.IecordsetQnoKrek > DB8ombo1.5e1t Data0.IecordsetQjmlKpinjam > 5e1t/.5e1t Data1.Iecordset.:nde1 > X1pjmX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > *al;5e1t,.5e1t< U ;5e1t/.5e1t< Data1.Iecordset.?pdate Data1.Iefresh 3lse :f Data1.Iecordset.4o'atch 5hen Data1.Iecordset.#dd4e& Data1.IecordsetQsaldoKpjm > 5e1t/.5e1t Data1.Iecordset.?pdate Data1.Iefresh 3nd :f 3nd :f Data0.Iecordset.?pdate DB!rid1.Iefresh coba 3lse 'sgBo1 X 'aaf 4o transaksi sudah #da QX, -b+$+nly U -b8ritical, X$3S#6#7#4X simpan.3nabled > =alse 3nd :f 3nd :f 3nd (ith Data0.Iecordset.:nde1 > X1pinjamX

00/

+n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast +n 3rror Iesume 4e1t tombolKsimpan &arnaKmati 5ambah.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub kosong;< +n 3rror !o5o 1 5e1t1.5e1t > XX 5e1t0.5e1t > XX 5e1t,.5e1t > XX 5e1t/.5e1t > XX 5e1t6.5e1t > XX DB8ombo1.5e1t > XX D5"icker1.*alue > Date 12 3nd Sub "ri-ate Sub mati;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKsimpan;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub tombolKtambah;< +n 3rror !o5o 1 5ambah.3nabled > =alse 7apus.3nabled > =alse selesai.3nabled > =alse simpan.3nabled > 5rue batal.3nabled > 5rue

00.

refres.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKbatal;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub &arnaKhidup;< +n 3rror !o5o 1 5e1t/.3nabled > 5rue DB8ombo1.3nabled > 5rue D5"icker1.3nabled > 5rue 5e1t/.Back8olor > N7C000000. DB8ombo1.Back8olor > N7C000000. 12 3nd Sub "ri-ate Sub &arnaKmati;< +n 3rror !o5o 1 5e1t1.3nabled > =alse 5e1t0.3nabled > =alse 5e1t,.3nabled > =alse 5e1t/.3nabled > =alse 5e1t6.3nabled > =alse D5"icker1.3nabled > =alse DB8ombo1.3nabled > =alse 5e1t1.Back8olor > N7C000000/ 5e1t0.Back8olor > N7C000000/ 5e1t,.Back8olor > N7C000000/ 5e1t/.Back8olor > N7C000000/ 5e1t6.Back8olor > N7C000000/ DB8ombo1.Back8olor > N7C000000/ 12 3nd Sub "ri-ate Sub tampilan;< +n 3rror !o5o 1 (ith Data0.Iecordset 5e1t1.5e1t > QnoKtrans DB8ombo1.5e1t > QnoKrek

006

D5"icker1.*alue > QtglKtrans 5e1t/.5e1t > QjmlKpinjam DB!rid1.Iefresh (ith Data1.Iecordset 5e1t6.5e1t > *al;5e1t,.5e1t< Data1.Iefresh DB!rid1.Iefresh 3nd (ith 3nd (ith 12 3nd Sub "ri-ate Sub dbcombo1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t/.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen DB8ombo1.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub 5e1t/K8hange;< +n 3rror !o5o 1 5e1t6.5e1t > *al;5e1t,.5e1t< U ;5e1t/.5e1t< 12 3nd Sub "ri-ate Sub te1t/Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen simpan.Set=ocus 3nd :f :f 4ot :s4umeric;8hr;$ey#scii<< 5hen $ey#scii > 0 3nd :f 12 3nd Sub "ri-ate Sub auto;< +n 3rror !o5o 1 Dim urutan #s String @ . Dim hitung #s Byte (ith Data0.Iecordset

00

:f .Iecord8ount > 0 5hen urutan > X00001X 3lse .'o-e6ast hitung > *al;Iight;.=ields;XnoKtransX<, .<< U 1 urutan > Iight;X00000X N hitung, .< 3nd :f 5e1t1 > urutan 3nd (ith 12 3nd Sub e< Desain =orm Setoran

$ode "rogram 2 "ri-ate Sub b;< +n 3rror !o5o 1 Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 1,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse

00C

Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 11< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 10< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 9< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ C< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ < U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

009

Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 6< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ .< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ /< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ ,< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 0< U K Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > K ;;;;Data,.IecordsetQbungaKpjm J 100< Data1.IecordsetQsaldoKpjm< @ 1< U K

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

010

Data1.IecordsetQsaldoKpjm Data1.Iecordset.?pdate Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans V> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub c;< +n 3rror !o5o 1 Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse

011

Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate

010

3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3lse Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > Data/.IecordsetQspjm Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub DB8ombo1K8hange;< +n 3rror !o5o 1 (ith Data1.Iecordset Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, DB8ombo1.5e1t :f 4ot .4o'atch 5hen 5e1t0.5e1t > Qnama +n 3rror Iesume 4e1t 5e1t,.5e1t > QsaldoKpjm 3lse 3nd :f

01,

3nd (ith Data1.Iecordset.:nde1 > X1nasabahX 12 3nd Sub "ri-ate Sub DB!rid1KIo&8ol8hange;6astIo& #s *ariant, By*al 6ast8ol #s :nteger< +n 3rror !o5o 1 tampilan 12 3nd Sub "ri-ate Sub =ormK#cti-ate;< +n 3rror !o5o 1 Data1.Iecordset.:nde1 > X1nasabahX Data0.Iecordset.:nde1 > X1setorX +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast b 5ambah.Set=ocus 12 3nd Sub "ri-ate Sub =ormK?nload;8ancel #s :nteger< c 3nd Sub "ri-ate Sub hapusK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX 5hen 'sgBo1 X$lik Data yang #kan Dihapus Dulu Di !rid GGX, -b+$+nly, XpesanX DB!rid1.3nabled > 5rue DB!rid1.#llo&Delete > 5rue 3lse (ith Data0.Iecordset :f 4ot .4o'atch 5hen "esan > 'sgBo1;XOakin #kan 'enghapus data Setoran tersebut..GGX, -bOes4o, XpesanX< +n 3rror Iesume 4e1t Data1.Iecordset.:nde1 > X1pjmX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f "esan > -bOes 5hen pan .Delete +n 3rror Iesume 4e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit

01/

Data1.IecordsetQsaldoKpjm > ;*al;5e1t,.5e1t< U *al;5e1t/.5e1t<< Data1.Iecordset.?pdate Data1.Iefresh bersih 3nd :f Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh kosong 3nd :f 3nd :f 3nd (ith 3nd :f +n 3rror !o5o 0 +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub bersih;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1pjm0X Data/.Iecordset.Seek X>X, 5e1t,.5e1t :f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQspjm > ;*al;5e1t,.5e1t< % *al;5e1t/.5e1t<< Data/.Iecordset.?pdate Data/.Iefresh 3nd :f Data/.Iefresh Data/.Iefresh DB!rid1.Iefresh kosong 12 3nd Sub "ri-ate Sub refresK8lick;< +n 3rror !o5o 1 =+I'KS35+I#4.Iefresh Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub selesaiK8lick;<

01.

?nload 'e 3nd Sub "ri-ate Sub 5ambahK8lick;< +n 3rror !o5o 1 kosong tombolKtambah &arnaKhidup auto DB8ombo1.Set=ocus 12 3nd Sub "ri-ate Sub batalK8lick;< +n 3rror !o5o 1 kosong +n 3rror Iesume 4e1t tombolKbatal &arnaKmati simpan1.*isible > =alse simpan.*isible > 5rue tampilan 12 3nd Sub "ri-ate Sub =ormK6oad;< +n 3rror !o5o 1 mati &arnaKmati kosong simpan1.*isible > =alse 12 3nd Sub "ri-ate Sub coba;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1pjm0X Data/.Iecordset.Seek X>X, 5e1t,.5e1t :f Data/.Iecordset.4o'atch 5hen Data/.Iecordset.#dd4e& Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQspjm > *al;5e1t,.5e1t< % *al;5e1t/.5e1t< Data/.Iecordset.?pdate 3lse:f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQspjm > *al;5e1t,.5e1t< % *al;5e1t/.5e1t< Data/.Iecordset.?pdate Data/.Iefresh

016

3nd :f DB!rid1.Iefresh 12 3nd Sub "ri-ate Sub pan;< +n 3rror !o5o 1 Dim i #s :nteger, panbar;,0000< #s String "rogressBar1.'in > 6Bound;panbar< "rogressBar1.'a1 > ?Bound;panbar< "rogressBar1.*isible > 5rue "rogressBar1.*alue > "rogressBar1.'in =or i > 6Bound;panbar< 5o ?Bound;panbar< "rogressBar1.*alue > i 4e1t i "rogressBar1.*isible > =alse "rogressBar1.*alue > "rogressBar1.'in 12 3nd Sub "ri-ate Sub simpanK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX +r DB8ombo1.5e1t > XX +r 5e1t/.5e1t > XX 5hen 'sgBo1 XSilahkan 6engkapi DatanyaQQX, -b+$+nly U -b31clamation, X"3I:4!#5#4X :f 5e1t1.5e1t > XX 5hen 5e1t1.Set=ocus 3lse:f DB8ombo1.5e1t > XX 5hen DB8ombo1.Set=ocus 3lse:f 5e1t/.5e1t > XX 5hen 5e1t/.Set=ocus 3nd :f 3lse pan Data0.Iecordset.:nde1 > X1setorX Data0.Iecordset.Seek X>X, 5e1t1.5e1t (ith Data1.Iecordset Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f 5e1t,.5e1t > 0 5hen 'sgBo1 X'aaf #nda sudah 5idak "unya "injamanX U 8hr;1,< K U 8hr;1,< U X Badi 5idak "erlu Setor 6agi X, -b+$+nly, X"eringatanX 5e1t0.5e1t > XX 5e1t,.5e1t > XX DB8ombo1.Set=ocus 3lse :f Data0.Iecordset.4o'atch 5hen Data0.Iecordset.#dd4e&

01

Data0.IecordsetQnoKtrans > 5e1t1.5e1t Data0.IecordsetQtglKtrans > D5"icker1.*alue Data0.IecordsetQnoKrek > DB8ombo1.5e1t Data0.IecordsetQjmlKsetor > 5e1t/.5e1t +n 3rror Iesume 4e1t Data1.Iecordset.:nde1 > X1pjmX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f Data1.Iecordset.4o'atch 5hen Data1.Iecordset.#dd4e& Data1.IecordsetQsaldoKpjm > 5e1t/.5e1t Data1.Iecordset.?pdate Data1.Iefresh 3lse :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKpjm > *al;5e1t,.5e1t< % ;5e1t/.5e1t< Data1.Iecordset.?pdate Data1.Iefresh 3nd :f 3nd :f Data0.Iecordset.?pdate DB!rid1.Iefresh coba 3lse 'sgBo1 X 'aaf 4o transaksi sudah #da QX, -b+$+nly U -b8ritical, X$3S#6#7#4X simpan.3nabled > =alse 3nd :f 3nd :f 3nd (ith Data0.Iecordset.:nde1 > X1setorX +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast tombolKsimpan &arnaKmati 5ambah.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub kosong;< +n 3rror !o5o 1 5e1t1.5e1t > XX 5e1t0.5e1t > XX 5e1t,.5e1t > XX 5e1t/.5e1t > XX 5e1t6.5e1t > XX DB8ombo1.5e1t > XX

01C

D5"icker1.*alue > Date 12 3nd Sub "ri-ate Sub mati;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKsimpan;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub tombolKtambah;< +n 3rror !o5o 1 5ambah.3nabled > =alse 7apus.3nabled > =alse selesai.3nabled > =alse simpan.3nabled > 5rue batal.3nabled > 5rue refres.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKbatal;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub &arnaKhidup;< +n 3rror !o5o 1 5e1t/.3nabled > 5rue DB8ombo1.3nabled > 5rue

019

D5"icker1.3nabled > 5rue 5e1t/.Back8olor > N7C000000. DB8ombo1.Back8olor > N7C000000. 12 3nd Sub "ri-ate Sub &arnaKmati;< +n 3rror !o5o 1 5e1t1.3nabled > =alse 5e1t0.3nabled > =alse 5e1t,.3nabled > =alse 5e1t/.3nabled > =alse 5e1t6.3nabled > =alse D5"icker1.3nabled > =alse DB8ombo1.3nabled > =alse 5e1t1.Back8olor > N7C000000/ 5e1t0.Back8olor > N7C000000/ 5e1t,.Back8olor > N7C000000/ 5e1t/.Back8olor > N7C000000/ 5e1t6.Back8olor > N7C000000/ DB8ombo1.Back8olor > N7C000000/ 12 3nd Sub "ri-ate Sub tampilan;< +n 3rror !o5o 1 (ith Data0.Iecordset 5e1t1.5e1t > QnoKtrans DB8ombo1.5e1t > QnoKrek D5"icker1.*alue > QtglKtrans 5e1t/.5e1t > QjmlKsetor DB!rid1.Iefresh (ith Data1.Iecordset 5e1t6.5e1t > *al;5e1t,.5e1t< Data1.Iefresh DB!rid1.Iefresh 3nd (ith 3nd (ith 12 3nd Sub "ri-ate Sub dbcombo1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t/.Set=ocus 3nd :f 12 3nd Sub

000

"ri-ate Sub te1t1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen DB8ombo1.Set=ocus 3nd :f 12 3nd Sub

"ri-ate Sub 5e1t/K8hange;< +n 3rror !o5o 1 +n 3rror Iesume 4e1t 5e1t6.5e1t > *al;5e1t,.5e1t< % ;5e1t/.5e1t< 12 3nd Sub "ri-ate Sub te1t/Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen simpan.Set=ocus 3nd :f :f 4ot :s4umeric;8hr;$ey#scii<< 5hen $ey#scii > 0 3nd :f 12 3nd Sub "ri-ate Sub auto;< +n 3rror !o5o 1 Dim urutan #s String @ . Dim hitung #s Byte (ith Data0.Iecordset :f .Iecord8ount > 0 5hen urutan > X00001X 3lse .'o-e6ast hitung > *al;Iight;.=ields;XnoKtransX<, .<< U 1 urutan > Iight;X00000X N hitung, .< 3nd :f 5e1t1 > urutan 3nd (ith 12 3nd Sub

001

f<

Desain =orm Simpan

$ode "rogram 2 "ri-ate Sub a;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 1,< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 10< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< U 0.0000000000,< @ Data1.IecordsetQsaldoKspn< @ 11< U K

000

Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 10< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 9< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ C< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ < U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 6< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

00,

Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ .< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ /< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ ,< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 0< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > K ;;;;Data,.IecordsetQbungaKspn J 100< Data1.IecordsetQsaldoKspn< @ 1< U K Data1.IecordsetQsaldoKspn Data1.Iecordset.?pdate Data..Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data..IecordsetQtglKtrans V> ,0 5hen Data1.Iecordset.edit

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

U 0.0000000000,< @

00/

Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub c;< +n 3rror !o5o 1 Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse

00.

Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,00 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0 0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 0/0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 010 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1C0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 1.0 5hen

006

Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 100 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 90 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> 60 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3lse Data0.Iecordset.'o-e6ast Data/.Iecordset.'o-e6ast :f Date % Data0.IecordsetQtglKtrans W> ,0 5hen Data1.Iecordset.edit +n 3rror Iesume 4e1t Data1.IecordsetQnoKrek > Data/.IecordsetQnoKrek Data1.IecordsetQsaldoKspn > Data/.IecordsetQsspn Data1.Iecordset.?pdate 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f

00

3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 3nd :f 12 3nd Sub "ri-ate Sub =ormK?nload;8ancel #s :nteger< c 3nd Sub "ri-ate Sub =ormK#cti-ate;< +n 3rror !o5o 1 Data1.Iecordset.:nde1 > X1nasabahX Data0.Iecordset.:nde1 > X1simpanX +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast a 12 3nd Sub "ri-ate Sub DB8ombo1K8hange;< +n 3rror !o5o 1 (ith Data1.Iecordset Data1.Iecordset.:nde1 > X1nasabahX Data1.Iecordset.Seek X>X, DB8ombo1.5e1t :f 4ot .4o'atch 5hen 5e1t0.5e1t > Qnama +n 3rror Iesume 4e1t 5e1t,.5e1t > QsaldoKspn 3lse 3nd :f 3nd (ith Data1.Iecordset.:nde1 > X1nasabahX 12 3nd Sub "ri-ate Sub DB!rid1KIo&8ol8hange;6astIo& #s *ariant, By*al 6ast8ol #s :nteger< +n 3rror !o5o 1 tampilan 12 3nd Sub "ri-ate Sub hapusK8lick;<

00C

+n 3rror !o5o 1 :f 5e1t1.5e1t > XX 5hen 'sgBo1 X$lik Data yang #kan Dihapus Dulu Di !rid GGX, -b+$+nly, XpesanX DB!rid1.3nabled > 5rue DB!rid1.#llo&Delete > 5rue 3lse (ith Data0.Iecordset :f 4ot .4o'atch 5hen "esan > 'sgBo1;XOakin #kan 'enghapus data Simpan tersebut..GGX, -bOes4o, XpesanX< +n 3rror Iesume 4e1t Data1.Iecordset.:nde1 > X1spnX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f "esan > -bOes 5hen pan .Delete (ith Data/.Iecordset :f 4ot .4o'atch 5hen .Delete 3nd :f 3nd (ith +n 3rror Iesume 4e1t :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > ;*al;5e1t,.5e1t< % *al;5e1t/.5e1t<< Data1.Iecordset.?pdate Data1.Iefresh bersih 3nd :f Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh kosong 3nd :f 3nd :f 3nd (ith 3nd :f +n 3rror !o5o 0 +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub bersih;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1spn1X Data/.Iecordset.Seek X>X, 5e1t,.5e1t

009

:f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQsspn > ;*al;5e1t,.5e1t< % *al;5e1t/.5e1t<< Data/.Iecordset.?pdate Data/.Iefresh 3nd :f Data/.Iefresh Data/.Iefresh DB!rid1.Iefresh kosong 12 3nd Sub "ri-ate Sub refresK8lick;< +n 3rror !o5o 1 =+I'KS:'"#4.Iefresh Data1.Iefresh Data0.Iefresh DB!rid1.Iefresh +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast 12 3nd Sub "ri-ate Sub selesaiK8lick;< ?nload 'e 3nd Sub "ri-ate Sub 5ambahK8lick;< +n 3rror !o5o 1 kosong auto tombolKtambah &arnaKhidup DB8ombo1.Set=ocus 12 3nd Sub "ri-ate Sub batalK8lick;< +n 3rror !o5o 1 kosong tombolKbatal &arnaKmati simpan.*isible > 5rue tampilan 12 3nd Sub

0,0

"ri-ate Sub =ormK6oad;< +n 3rror !o5o 1 mati &arnaKmati kosong 12 3nd Sub "ri-ate Sub coba;< +n 3rror !o5o 1 Data/.Iecordset.:nde1 > X1spn0X Data/.Iecordset.Seek X>X, 5e1t,.5e1t :f Data/.Iecordset.4o'atch 5hen Data/.Iecordset.#dd4e& Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQsspn > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< Data/.Iecordset.?pdate 3lse:f 4ot Data/.Iecordset.4o'atch 5hen Data/.Iecordset.edit Data/.IecordsetQnoKrek > DB8ombo1.5e1t Data/.IecordsetQsspn > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< Data/.Iecordset.?pdate Data/.Iefresh 3nd :f DB!rid1.Iefresh 12 3nd Sub "ri-ate Sub pan;< +n 3rror !o5o 1 Dim i #s :nteger, panbar;,0000< #s String "rogressBar1.'in > 6Bound;panbar< "rogressBar1.'a1 > ?Bound;panbar< "rogressBar1.*isible > 5rue "rogressBar1.*alue > "rogressBar1.'in =or i > 6Bound;panbar< 5o ?Bound;panbar< "rogressBar1.*alue > i 4e1t i "rogressBar1.*isible > =alse "rogressBar1.*alue > "rogressBar1.'in 12 3nd Sub "ri-ate Sub simpanK8lick;< +n 3rror !o5o 1 :f 5e1t1.5e1t > XX +r DB8ombo1.5e1t > XX +r 5e1t/.5e1t > XX 5hen 'sgBo1 XSilahkan 6engkapi DatanyaQQX, -b+$+nly U -b31clamation, X"3I:4!#5#4X

0,1

:f 5e1t1.5e1t > XX 5hen 5e1t1.Set=ocus 3lse:f DB8ombo1.5e1t > XX 5hen DB8ombo1.Set=ocus 3lse:f 5e1t/.5e1t > XX 5hen 5e1t/.Set=ocus 3nd :f 3lse pan Data0.Iecordset.:nde1 > X1simpanX Data0.Iecordset.Seek X>X, 5e1t1.5e1t :f Data0.Iecordset.4o'atch 5hen Data0.Iecordset.#dd4e& Data0.IecordsetQnoKtrans > 5e1t1.5e1t Data0.IecordsetQtglKtrans > D5"icker1.*alue Data0.IecordsetQnoKrek > DB8ombo1.5e1t Data0.IecordsetQjmlKsimpan > 5e1t/.5e1t Data1.Iecordset.:nde1 > X1spnX Data1.Iecordset.Seek X>X, 5e1t,.5e1t :f Data1.Iecordset.4o'atch 5hen Data1.Iecordset.#dd4e& Data1.IecordsetQsaldoKspn > 5e1t/.5e1t Data1.Iecordset.?pdate Data1.Iefresh 3lse :f 4ot Data1.Iecordset.4o'atch 5hen Data1.Iecordset.edit Data1.IecordsetQsaldoKspn > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< Data1.Iecordset.?pdate Data1.Iefresh 3nd :f 3nd :f Data0.Iecordset.?pdate DB!rid1.Iefresh 3lse 'sgBo1 X 'aaf 4o transaksi sudah #da QX, -b+$+nly U -b8ritical, X$3S#6#7#4X simpan.3nabled > =alse 3nd :f coba Data0.Iecordset.:nde1 > X1simpanX +n 3rror Iesume 4e1t Data0.Iecordset.'o-e6ast tombolKsimpan &arnaKmati 5ambah.Set=ocus 3nd :f 12

0,0

3nd Sub "ri-ate Sub kosong;< +n 3rror !o5o 1 5e1t1.5e1t > XX 5e1t0.5e1t > XX 5e1t,.5e1t > XX 5e1t/.5e1t > XX 5e1t6.5e1t > XX DB8ombo1.5e1t > XX D5"icker1.*alue > Date 12 3nd Sub "ri-ate Sub mati;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKsimpan;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue 7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub tombolKtambah;< +n 3rror !o5o 1 5ambah.3nabled > =alse 7apus.3nabled > =alse selesai.3nabled > =alse simpan.3nabled > 5rue batal.3nabled > 5rue refres.3nabled > =alse 12 3nd Sub "ri-ate Sub tombolKbatal;< +n 3rror !o5o 1 simpan.3nabled > =alse batal.3nabled > =alse 5ambah.3nabled > 5rue

0,,

7apus.3nabled > 5rue selesai.3nabled > 5rue refres.3nabled > 5rue 12 3nd Sub "ri-ate Sub &arnaKhidup;< +n 3rror !o5o 1 5e1t/.3nabled > 5rue DB8ombo1.3nabled > 5rue D5"icker1.3nabled > 5rue 5e1t/.Back8olor > N7C000000. DB8ombo1.Back8olor > N7C000000. 12 3nd Sub "ri-ate Sub &arnaKmati;< +n 3rror !o5o 1 5e1t1.3nabled > =alse 5e1t0.3nabled > =alse 5e1t,.3nabled > =alse 5e1t/.3nabled > =alse 5e1t6.3nabled > =alse D5"icker1.3nabled > =alse DB8ombo1.3nabled > =alse 5e1t1.Back8olor > N7C000000/ 5e1t0.Back8olor > N7C000000/ 5e1t,.Back8olor > N7C000000/ 5e1t/.Back8olor > N7C000000/ 5e1t6.Back8olor > N7C000000/ DB8ombo1.Back8olor > N7C000000/ 12 3nd Sub "ri-ate Sub tampilan;< +n 3rror !o5o 1 (ith Data0.Iecordset 5e1t1.5e1t > QnoKtrans DB8ombo1.5e1t > QnoKrek D5"icker1.*alue > QtglKtrans 5e1t/.5e1t > QjmlKsimpan DB!rid1.Iefresh (ith Data1.Iecordset 5e1t6.5e1t > *al;5e1t,.5e1t< Data1.Iefresh DB!rid1.Iefresh 3nd (ith

0,/

3nd (ith 12 3nd Sub

"ri-ate Sub dbcombo1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen 5e1t/.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t1Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen DB8ombo1.Set=ocus 3nd :f 12 3nd Sub "ri-ate Sub te1t/Kkeypress;$ey#scii #s :nteger< +n 3rror !o5o 1 :f $ey#scii > 1, 5hen simpan.Set=ocus 3nd :f :f 4ot :s4umeric;8hr;$ey#scii<< 5hen $ey#scii > 0 3nd :f 12 3nd Sub "ri-ate Sub 5e1t/K8hange;< +n 3rror !o5o 1 5e1t6.5e1t > *al;5e1t,.5e1t< U *al;5e1t/.5e1t< 12 3nd Sub "ri-ate Sub auto;< +n 3rror !o5o 1 Dim urutan #s String @ . Dim hitung #s Byte (ith Data0.Iecordset :f .Iecord8ount > 0 5hen urutan > X00001X 3lse .'o-e6ast hitung > *al;Iight;.=ields;XnoKtransX<, .<< U 1

0,.

urutan > Iight;X00000X N hitung, .< 3nd :f 5e1t1 > urutan 3nd (ith 12 3nd Sub g< Desain 'D: =orm menu utama

$ode "rogram 2 "ri-ate Sub backupK8lick;< =+I'KB#8$K?".Sho& 3nd Sub "ri-ate Sub bungaK8lick;< =+I'KB?4!#.Sho& 3nd Sub "ri-ate Sub e1itK8lick;< tanya > 'sgBo1;X Oakin #nda akan $eluar dari "rogram :ni...GX, / U ,0 U 0.6, X$+4=:I'#S:X< :f tanya > 6 5hen 3nd 3nd :f

0,6

3nd Sub "ri-ate Sub gantipass&ordK8lick;< !#45:K"#SS(+ID.Sho& 3nd Sub "ri-ate Sub lapnasabahK8lick;< 6#"K4#S#B#7.Sho& 3nd Sub "ri-ate Sub lappengambilanK8lick;< 6#"K"34!#'B:6#4.Sho& 3nd Sub "ri-ate Sub lappinjamK8lick;< 6#"K":4B#'.Sho& 3nd Sub "ri-ate Sub lapsetoranK8lick;< 6#"KS35+I#4.Sho& 3nd Sub "ri-ate Sub lapsimpanK8lick;< 6#"KS:'"#4.Sho& 3nd Sub "ri-ate Sub nasabahK8lick;< =+I'K4#S#B#7.Sho& 3nd Sub "ri-ate Sub pengambilanK8lick;< =+I'K"34!#'B:6#4.Sho& 3nd Sub "ri-ate Sub pinjamK8lick;< =+I'K":4B#'.Sho& 3nd Sub "ri-ate Sub setoranK8lick;< =+I'KS35+I#4.Sho& 3nd Sub "ri-ate Sub simpanK8lick;< =+I'KS:'"#4.Sho& 3nd Sub "ri-ate Sub 5imer1K5imer;< 6abel/.6eft > 6abel/.6eft % 1C0 :f 6abel/.6eft V> %09000 5hen

0,

5imer1.3nabled > 5rue 6abel/.6eft > X1/000X 3nd :f 3nd Sub "ri-ate Sub 5oolbar1KButton8lick;By*al Button #s 'S8omctl6ib.Button< Select 8ase Button.$ey 8ase XaX =+I'KB?4!#.Sho& 8ase XbX =+I'K4#S#B#7.Sho& 8ase XcX =+I'KS:'"#4.Sho& 8ase XdX =+I'K":4B#'.Sho& 8ase XeX =+I'K"34!#'B:6#4.Sho& 8ase XfX =+I'KS35+I#4.Sho& 6#"KS35+I#4.Sho& 3nd Select 3nd Sub

0,C

$a!tar Pusta*a Subari N Ous&anto, 000C. E"anduan 6engkap "emrograman *isual Basic 6.0E, Bakarta2 8erdas "ustaka "ublisher. 5im "enyusun. 0006. 'odul "raktek 6aboratorium $omputer *isual Basic 6.0. Bakarta. #':$ Bina Sarana :nformatika. 5im "enyusun. 0000. 'odul "raktikum *isual Basic. Oogyakarta. =':"# ?ni-ersitas !adjah 'ada. http2JJd&i.its%sby.eduJ":$5:J*isualP00B#sicJlastJBab1.doc http2JJikc.-ip.net.idJberseriJkrisna%-b6Jinde1.php http2JJns1.cic.ac.idJcmarsani.asfiJtulisanJ'odulK1.htm http2JJleo.apeaje.infoJ-bJtutor.html http2JJns1.cic.ac.idJcmarsani.asfiJtulisanJ'odulK1.htm http2JJ&&&.ajibsusanto.siteCC.netJaplikasiKbisnisJ'+D?6K*BK6.pdf http2JJ&&&.masinosinaga.comJinde1.phpGname>4e&sNfile>articleNsid>0,/ http2JJabsanka.&ordpress.comJ000CJ0 J0.Jpdf%program%-isual%basicJ http2JJ&&&.kuliahit.comJkuliahitJarticleJ16J=ungsi%Date%and%5ime%pada%*B http2JJikc.cbn.net.idJberseriJkrisna%-b6Jkrisna%-b6%06.Aip http2JJleo.apeaje.infoJ-bJlessonC.html http2JJmercusian.comJ-isual%basicJpraktek%-isual%basic%database%dao.html http2JJmugi.or.idJblogsJelangJarchi-eJ000CJ0CJ1.Jpenggunakan%dao%data%access% objects.asp1 http2JJlecturer.eepis%its.eduJctessyJtutorialJbab..pdf

0,9

0/0

Anda mungkin juga menyukai