LATIHAN-LATIHAN

Meskipun ini adalah bab terakhir, tetapi justru bab ini merupakan bab khusus untuk Anda yang baru mengenal Visual Basic dan memerlukan latihan-latihan dalam membuat program. Bab ini sekaligus memenuhi saran yang masuk dari para pembaca, terima kasih atas saran Anda. Sebelumnya buatlah sebuah folder khusus di drive C, namai dengan “Latihan”. Untuk menyimpan komponen project, buat folder-folder baru di dalam folder “Latihan” tersebut, misal: “Lat1”, “Lat2”, dan seterusnya.

Latihan 1
Pada latihan pertama ini, saya mengajak Anda membuat program penggunaan operator Visual Basic untuk operasi aritmatika, seperti: penjumlahan, pengurangan, perkalian dan pembagian. Program ini menekankan penggunaan struktur Select Case. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat1. Namai Form1 dengan frmLat1. Ubah properti dari frmLat1 sebagai berikut: Pengaturan Properti Pengaturan pada: frmLat1 Properti Perubahan Kegunaan Kalkulator Caption Tampilan judul pada title bar form. Sederhana Mengubah bentuk title bar form (hanya dilengkapi dengan sebuah BorderStyle 1-FixedSingle tombol close). Mengubah bentuk dan ukuran font dari form, sehingga saat Anda menambahkan objek kontrol pada Font Courier New, 10 form, maka secara otomatis bentuk dan ukuran font dari objek kontrol tersebut mengikuti bentuk dan ukuran font dari form. Mengubah ikon form dan ikon Icon Gambar ikon (ico) program saat dikompail menjadi file eksekusi (exe). Mengatur posisi form pada layar, agar form otomatis berada di StartUpPosition 2-CenterScreen tengah-tengah layar saat program dijalankan. Masukkan objek kontrol-objek kontrol dan ubah propertinya, sebagai berikut: Pengaturan Properti frmLat1 Properti Perubahan Caption AutoSize Bilangan &1 1-True

Pengaturan pada: No Kontrol 1 Label1

Kegunaan Mengubah teks yang ditampilkan. Agar ukuran Label mengikuti panjangnya

BackStyle

0-Transparent

TabIndex Caption AutoSize BackStyle TabIndex Caption AutoSize BackStyle TabIndex Caption AutoSize BackStyle TabIndex Name 5 Text1 Text TabIndex Name Text TabIndex Name Text TabIndex Name 8 Combo1 Style TabIndex Name 9 Command1 Caption TabIndex Caption 10 Frame1 Height

0 &Operator 1-True 0-Transparent 2 Bilangan &2 1-True 0-Transparent 4 Hasil 1-True 0-Transparent 7 txtBil1 dikosongkan 1 txtBil2 dikosongkan 5 txtHasil dikosongkan 8 cboOpr 2-DropDown List 3 cmdProses &Proses 6 dikosongkan

2

Label2

3

Label3

4

Label4

6

Text2

7

Text3

teks yang tercetak. Agar warna dasar Label transparan/ mengikuti warna dasar form. Mengatur pelarian fokus saat Anda menekan tombol Tab pada keyboard. Sda. Sda. sda. Sda. Sda. Sda. Sda. Sda. Sda. Sda. Sda. Sda. Memberi identitas pada TextBox, penting sekali untuk mengenalkan TextBox pada program. Mengkosongkan teks. Sda. Sda. Sda. Sda. Sda. Sda. Sda. Memberi identitas pada Combo, penting! Mengubah bentuk tampilan list ComboBox. Sda. Memberi identitas pada cmdProses, penting! Mengubah teks yang ditampilkan. Sda. Mengubah teks yang ditampilkan. Mengubah tinggi Frame. Nilai 30 dimaksudkan agar tampilan frame hanya berbentuk garis.

30

Desain form seperti pada ilustrasi gambar berikut:

Gambar 18.1. Desain form. Masuk ke jendela kode, dan ketikkan kode berikut: Baris Kode frmLat1 Baris kode pada: 1 Option Explicit 'Event saat form akan ditampilkan Private Sub Form_Load() With Me.cboOpr 'Mengisi list pada cboOpr 'dengan text = "+" .AddItem "+" 'Mengisi list pada cboOpr 'dengan text = "-" dst... .AddItem "-" .AddItem "*" .AddItem "/" .AddItem "\" .AddItem "mod" End With End Sub 'Event saat mengklik tombol cmdProses Private Sub cmdProses_Click() 'Deklarasi Variabel Dim Bil1 As Long Dim Bil2 As Long Dim Opr As String Dim Hasil As Long 'Mengisi var Bil1 dengan text 'pada txtBil1 dengan sebelumnya 'dikonversikan ke dalam tipe data Long Bil1 = CLng(Me.txtBil1.Text) 'Mengisi var Bil2 dengan text 'pada txtBil1 dengan sebelumnya 'dikonversikan ke dalam tipe data Long Bil2 = CLng(Me.txtBil2.Text) 'var Opr dengan text dari cboOpr Opr = Me.cboOpr.Text 'Menyeleksi nilai dari Opr Select Case Opr 'Jika Opr adalah "+" maka Case "+"

2 3

4

5 6 7 8 9 10 11

12 13 14 15 16

17

18 19 20 21

22 23

24 25

26 27

28

29

30

31

32 33 34 35

'isi nilai Hasil dengan operasi 'penjumlahan Bil1 dan Bil2 Hasil = Bil1 + Bil2 'Jika Opr adalah "-" maka Case "-" 'isi nilai Hasil dengan operasi 'pengurangan Bil1 dan Bil2 Hasil = Bil1 - Bil2 'Jika Opr adalah "*" maka Case "*" 'isi nilai Hasil dengan operasi 'perkalian Bil1 dan Bil2 Hasil = Bil1 * Bil2 'Jika Opr adalah "/" Case "/" 'isi nilai Hasil dengan operasi 'pembagian Bil1 dan Bil2 Hasil = Bil1 / Bil2 'Jika Opr adalah "\" '"\" adalah simbol pembagian 'bilangan bulat (DIVide) 'yang mengabaikan nilai desimal 'dari nilai yang dihasilkan Case "\" 'isi nilai Hasil dengan operasi 'pembagian bulat Bil1 dan Bil2 Hasil = Bil1 \ Bil2 'Jika Opr adalah "mod" '"mod" adalah simbol pembagian 'Modulus (sisa pembagian) Case "mod" 'isi nilai Hasil dengan operasi 'modulus Bil1 dan Bil2 Hasil = Bil1 Mod Bil2 End Select 'Menampilkan nilai Hasil pada txtHasil Me.txtHasil.Text = Hasil End Sub

Jalankan program! Masukkan angka kedalam textbox Bilangan 1, kemudian klik combobox Operator, pilih sebuah operator. Masukkan angka pada textbox Bilangan 2. klik tombol Proses. Pada textbox Hasil akan tercetak hasil dari operasi yang Anda tentukan. Catatan: Untuk latihan-latihan selanjutnya, biasakan untuk mengubah properti-properti dari form seperti cara pengaturan di atas.

Latihan 2
Latihan ke-dua ini adalah program untuk menentukan tarif untuk penumpang kereta api berdasarkan kota jurusan, kelas tempat duduk dan katagori usia penumpang. Program ini menekankan penggunaan struktur If ... Then ... Else dan Select Case. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat2. Namai Form1 dengan frmLat2.

Masukkan objek kontrol-objek kontrol dan atur propertinya seperti pada tabel di bawah ini: Pengaturan Properti frmLat2 Properti Perubahan Caption &Jurusan Name cboJurusan Caption &Kelas Name cboKelas Caption usia Name optUsia Caption &Dewasa Index 0 Name optUsia Caption &Anak-anak Index 1 Name cmdProses Caption &Proses Caption Dikosongkan Height 30 Caption TARIF Name txtTarif Alignment 1-Right Justify Text 0 Caption Keterangan Left, Top, Height, Atur sehingga membentuk Width tabel seperti gambar Left, Top, Width, Seperti pada gambar Caption

Pengaturan pada: No Objek Kontrol 1 Label1 2 Combo1 3 Label2 4 Combo2 5 Label3 6 Option1

7 8 9 10 11 12 13 14

Option2 Command1 Frame1 Label4 Text1 Frame2 Shape1-Shape8 Label5-30

Gambar 18.2. Desain form. Catatan: Jika Anda merasa kesusahan menggunakan Shape untuk membentuk tabel seperti pada gambar, silakan tidak perlu Anda lakukan, karena tabel tersebut hanya sekedar informasi yang tidak berpengaruh terhadap baris kode.

Ketikkan kode sumber berikut: Baris Kode frmLat2 Baris kode pada: 1 Option Explicit 'Deklarasi variabel untuk sebuah modul Dim Jurusan As String Dim Kelas As String Dim Dewasa As Boolean 'Event saat tombol Proses diklik Private Sub cmdProses_Click() 'Deklarasi variabel Dim Tarif As Long 'Jika nilai var Dewasa adalah True maka If Dewasa = True Then 'Mengisi nilai Tarif dengan nilai 'dari var BesarTarif Tarif = BesarTarif 'Jika tidak (Jika nilai var Dewasa 'adalah False) maka Else 'Mengisi nilai Tarif dengan nilai 'dari var BesarTarif dikalikan 50% Tarif = BesarTarif * (50 / 100) End If 'Menampilkan nilai Tarif pada txtTarif 'dengan sebelumnya diformat String Me.txtTarif.Text = _ Strings.FormatNumber(Tarif, 0) End Sub 'Event saat form akan ditampilkan Private Sub Form_Load() With Me.cboJurusan 'Mengisi list cboJurusan dengan 'teks "Jakarta" .AddItem "Jakarta" 'Mengisi list cboJurusan dengan 'teks "Bandung" dst... .AddItem "Bandung" .AddItem "Semarang" .AddItem "Surabaya" .AddItem "Yogyakarta" End With ' With Me.cboKelas 'Mengisi list cboKelas dengan 'teks "Eksekutif" .AddItem "Eksekutif" 'Mengisi list cboKelas dengan 'teks "Bisnis" dst... .AddItem "Bisnis" .AddItem "Ekonomi" End With

2 3 4

5 6 7

8

9

10 11

12 13

14 15

16

17 18 18 20 21 22

23

24 25 26

27 28

'Menandai optUsia Index 0 '(opsi Dewasa) Me.optUsia(0).Value = True End Sub 'Fungsi untuk menentukan BesarTarif Private Function BesarTarif() As Long 'Mengisi Jurusan dengan teks 'pada cboJurusan Jurusan = Me.cboJurusan.Text 'Mengisi Kelas dengan teks 'pada cboKelas Kelas = Me.cboKelas.Text 'Jika kelas adalah Eksekutif If Kelas = "Eksekutif" Then 'Memilih Jurusan Select Case Jurusan 'Jika jurusan adalah "Jakarta" Case "Jakarta" 'Nilai BesarTarif adalah 100000 BesarTarif = 100000 Case "Bandung" BesarTarif = 80000 Case "Semarang" BesarTarif = 120000 Case "Surabaya" BesarTarif = 135000 Case "Yogyakarta" BesarTarif = 150000 Else BesarTarif = 0 End Select ElseIf Kelas = "Bisnis" Then Select Case Jurusan Case "Jakarta" BesarTarif = 50000 Case "Bandung" BesarTarif = 35000 Case "Semarang" BesarTarif = 95000 Case "Surabaya" BesarTarif = 110000 Case "Yogyakarta" BesarTarif = 120000 Else BesarTarif = 0 End Select ElseIf Kelas = "Ekonomi" Then Select Case Jurusan Case "Jakarta" BesarTarif = 30000 Case "Bandung" BesarTarif = 25000 Case "Semarang" BesarTarif = 75000 Case "Surabaya" BesarTarif = 95000

29

30

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

72 73 74 75 76 77 78

Case "Yogyakarta" BesarTarif = 100000 Else BesarTarif = 0 End Select End If End Function 'Event saat memilih Option optUsia Private Sub optUsia_Click(Index As Integer) 'Mengisi Nilai Dewasa (True atau False) 'Nilai True jika memilih opsi Dewasa Dewasa = Me.optUsia(0).Value End Sub

79

80 81

Jalankan program! Tentukan: jurusan, kelas dan kategori usia, kemudian klik tombol Proses. Lihat hasilnya, samakan dengan daftar tarif pada tabel yang ditentukan. Catatan: Jurusan dan Kelas bersifat case sensitif, jika Anda mengetikkan: “JAKARTA”, maka tarif yang berlaku adalah 0. Karena pada case sensitif, “JAKARTA” berbeda dengan “Jakarta”. Untuk mengatasinya, silakan pelajari mengenai fungsi manipulasi String, pada Bab 5.

Latihan 3
Latihan berikut ini adalah program untuk menentukan keliling lingkaran, luas lingkaran dan volume bola berdasarkan nilai jari-jari yang ditentukan oleh pengguna. Program ini mencontohkan penggunaan variabel konstanta. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat3. Namai Form1 dengan frmLat3. Masukkan objek kontrol-objek kontrol dan atur propertinya seperti pada tabel di bawah ini: Pengaturan Properti Pengaturan pada: frmLat3 No Objek Kontrol Properti 1 Label1 Caption Name 2 Text1 Alignment Text 3 Label2 Caption Name 4 Text2 Alignment Text 5 Label3 Caption Name 6 Text3 Alignment Text 7 Label4 Caption Name 8 Text4 Alignment Text

Perubahan &Jari-jari txtJari 1-Right Justify 0 Keliling txtKel 1-Right Justify 0 Luas txtLuas 1-Right Justify 0 Volume Bola txtVol 1-Right Justify 0

9 10

Frame1 Command1

Caption Height Name Capion

Dikosongkan 30 cmdProses &Proses

Gambar 18.3. Desain form. Baris Kode frmLat2 Baris kode pada: 1 Option Explicit 'Deklarasi Konstanta pi Const pi = 22 / 7 'Event saat mengklik tombol cmdProses Private Sub cmdProses_Click() 'Deklarasi variabel Dim r As Long Dim Keliling As Single Dim Luas As Single Dim Volume As Single 'Mengisi nilai r dengan teks pada txtJari r = Me.txtJari.Text 'Jika value r tidak samadengan 0 maka If Val(r) <> 0 Then 'Keliling adalah pi dikali 2 kali r Keliling = pi * (2 * r) 'Luas adalah pi dikali r dikali r Luas = pi * r * r 'Volume adalah 4/3 dikali pi 'dikali r dikali r Volume = 4 / 3 * pi * r * r 'Output -=> 'Menampilkan nilai Keliling pada txtKel Me.txtKel.Text = Keliling Me.txtLuas.Text = Luas Me.txtVol = Volume End If End Sub

2

3 4 5 6 7 8

9 10 11

12

13 14 15 16 17

Latihan 4

Latihan kali ini, kita akan mencoba membuat program untuk menentukan harga yang harus dibayar seorang penginap pada sebuah hotel, tergantung jenis kamar, dan lama menginap. Ketentuan-ketentuan lain, bisa Anda lihat pada tabel di bawah ini. Kode Kamar ML MW AG DL Kode Kelas E B X P Jenis Kamar MELATI MAWAR ANGGREK DAHLIA Jenis Kamar EKONOMI BISNIS EXECUTIVE PRESIDENT Tabel Tarif B X 65.000 85.000 67.500 87.500 70.000 90.000 75.000 95.000

ML MW AG DL

E 45.000 47.500 50.000 55.000

V 105.000 107.500 110.000 115.000

P 125.000 127.500 130.000 135.000

Tabel Tarif E B X V 0% 5% 10% 15% ML 0% 5% 10% 15% MW 0% 5% 10% 15% AG 0% 5% 10% 15% DL Diskon berlaku jika lama menginap 3 hari atau lebih. Catatan:

P 20% 20% 20% 20%

Program ini menekankan penggunaan fungsi manipulasi string: Left, Mid, dan Right dan penyeleksian kondisi: If ... Then ... Else dan Select Case Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat4. Namai Form1 dengan frmLat4. Masukkan objek kontrol-objek kontrol dan atur propertinya seperti pada tabel di bawah ini: Pengaturan Properti Pengaturan pada: frmLat4 No Objek Kontrol Properti 1 Label1 Caption Name 2 Text1 Text 3 Label2 Caption Name 4 Text2 Text 5 Label3 Caption Name 6 Text3 Text 7 Frame1 Caption

Perubahan &KODE txtKode ML-07-P TANGGAL &MASUK txtMasuk 12-01-06 TANGGAL K&ELUAR txtKeluar 15-01-06 Dikosongkan

8 9 10 11 12 13 14 15 16 17 18 19 20

Label4 Text4 Label5 Text5 Label6 Text6 Label7 Text7 Label8 Text8 Label9 Text9 Command1

Height Caption Name Text Caption Name Text Caption Name Text Caption Name Text Caption Name Text Caption Name Text Name Caption

30 KAMAR txtKamar Dikosongkan NOMOR txtNomor Dikosongkan LAMA MENGINAP txtLama 0 TARIF txtTarif 0 DISKON txtDiskon 0 TOTAL BAYAR txtTotal 0 cmdProses &Proses

Bila perlu, masukkan beberapa objek kontrol: Frame, Shape dan Label untuk membuat tabel-tabel informasi. Sehingga tampilan akhir seperti pada ilustrasi gambar di bawah ini:

Gambar 18.4. Desain form. Ketikkan kode sumber berikut ini: Baris Kode frmLat4 Baris kode pada: 1 Option Explicit 'Deklarasi variabel level untuk sebuah modul

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Dim Kode As String Dim Masuk As Date Dim Keluar As Date Dim Lama As Integer Dim Kamar As String Dim Kelas As String Dim Nomor As String Dim Tarif As Long Dim Diskon As Long Dim Total As Long Private Sub cmdProses_Click() 'Mengisi var Kode dengan teks dari txtKode Kode = Me.txtKode.Text 'Jika dua huruf awal dari Kode adalah ML If Left(UCase(Kode), 2) = "ML" Then 'Isi nilai var Kamar dengan MELATI Kamar = "MELATI" 'Jika satu huruf terakhir Kode adalah E If Right(UCase(Kode), 1) = "E" Then 'Isi Tarif dengan 45000 Tarif = 45000 ElseIf Right(UCase(Kode), 1) = "B" Then Tarif = 65000 ElseIf Right(UCase(Kode), 1) = "X" Then Tarif = 85000 ElseIf Right(UCase(Kode), 1) = "V" Then Tarif = 105000 ElseIf Right(UCase(Kode), 1) = "P" Then Tarif = 125000 Else Tarif = 0 End If 'Jika dua huruf awal dari Kode adalah MW ElseIf Left(UCase(Kode), 2) = "MW" Then 'Isi nilai var Kamar dengan MAWAR Kamar = "MAWAR" 'Jika satu huruf terakhir Kode adalah E If Right(UCase(Kode), 1) = "E" Then 'Isi Tarif dengan 47500 Tarif = 47500 ElseIf Right(UCase(Kode), 1) = "B" Then Tarif = 67500 ElseIf Right(UCase(Kode), 1) = "X" Then Tarif = 87500 ElseIf Right(UCase(Kode), 1) = "V" Then Tarif = 107500 ElseIf Right(UCase(Kode), 1) = "P" Then Tarif = 127500 Else Tarif = 0 End If ElseIf Left(UCase(Kode), 2) = "AG" Then Kamar = "ANGGREK" If Right(UCase(Kode), 1) = "E" Then Tarif = 50000 ElseIf Right(UCase(Kode), 1) = "B" Then Tarif = 70000

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

77

78 79

80

81 82

83 84

85 86 87 88 89

ElseIf Right(UCase(Kode), 1) = "X" Then Tarif = 90000 ElseIf Right(UCase(Kode), 1) = "V" Then Tarif = 110000 ElseIf Right(UCase(Kode), 1) = "P" Then Tarif = 130000 Else Tarif = 0 End If ElseIf Left(UCase(Kode), 2) = "DL" Then Kamar = "DAHLIA" If Right(UCase(Kode), 1) = "E" Then Tarif = 55000 ElseIf Right(UCase(Kode), 1) = "B" Then Tarif = 75000 ElseIf Right(UCase(Kode), 1) = "X" Then Tarif = 95000 ElseIf Right(UCase(Kode), 1) = "V" Then Tarif = 115000 ElseIf Right(UCase(Kode), 1) = "P" Then Tarif = 135000 Else Tarif = 0 End If Else Kamar = "MAYAT" End If 'Isi nilai var Nomor dengan huruf ke-4 'Sebanyak 2 huruf dari Kode Nomor = Mid(Kode, 4, 2) 'Isi nilai var Masuk dengan teks 'pada txtMasuk yang telah diformat 'ke tipe data Date Masuk = CDate(Me.txtMasuk.Text) Keluar = CDate(Me.txtKeluar.Text) 'Mengisi nilai var Lama dengan 'hasil pengurangan nilai var Keluar 'dengan var Masuk kemudian ditambah 1 Lama = DateDiff("d", Masuk, Keluar) + 1 'Mengisi nilai Tarif dengan perkalian 'Tarif dasar dengan Lama Tarif = Tarif * Lama 'Jika lama adalah 3 atau lebih dari 3 If Lama >= 3 Then 'Jika 1 huruf terakhir dari Kode 'adalah B maka If Right(UCase(Kode), 1) = "B" Then 'Diskon adalah Tarif dikali 5% Diskon = Tarif * 5 / 100 'Jika 1 huruf terakhir dari Kode 'adalah X maka ElseIf Right(UCase(Kode), 1) = "X" Then 'Diskon adalah Tarif dikali 10% Diskon = Tarif * 10 / 100 ElseIf Right(UCase(Kode), 1) = "V" Then Diskon = Tarif * 15 / 100 ElseIf Right(UCase(Kode), 1) = "P" Then

90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Diskon = Tarif * 20 / 100 Else Diskon = 0 End If 'Jika tidak (jika Lama kurang dari 3) Else Diskon = 0 End If 'Total adalah Tarif dikurangi Diskon Total = Tarif - Diskon 'Output/keluaran Me.txtKamar.Text = Kamar Me.txtNomor.Text = Nomor Me.txtLama.Text = Lama & " hari" Me.txtTarif.Text = FormatNumber(Tarif, 0) Me.txtDiskon.Text = FormatNumber(Diskon, 0) Me.txtTotal.Text = FormatNumber(Total, 0) End Sub

Jalankan program! Klik tombol Proses! Silakan coba mengganti: Kode, Tanggal Masuk dan Tanggal Keluar, kemudian klik kembali tombol Proses. Contoh format pengisian Kode, Tanggal masuk dan Tanggal keluar: Kode MW-24-E AG-09-B DL-82-X Tanggal Masuk 10-02-2006 11-02-2006 12-02-2006 Tanggal Keluar 11-02-2006 20-02-2006 12-02-2006

Latihan 5
Latihan berikut ini adalah membuat program “Billing”, utuk menghitung harga sewa dari seorang pengguna komputer, dengan harga sewa perjam adalah 1000. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat5. Namai Form1 dengan frmLat5. Pengaturan Properti Pengaturan pada: frmLat5 No Objek Kontrol Properti 1 Label1 Caption Name 2 Text1 Text 3 Label2 Caption Name 4 Text2 Text 5 Label3 Caption Name 6 Text3 Text 7 Label4 Caption Name 8 Text4 Text Name 9 Command1 Caption

Perubahan Jam Mulai txtMulai 00:00:00 Jam Sekarang txtSekarang 00:00:00 Lamanya txtLama 00:00:00 Tarif txtTarif 0 cmdMulai &Mulai

10 11 12 13

Command2 Timer1 Timer2 Timer3

Name Caption Name Interval Name Interval Name Enabled Interval

cmdSelesai &Selesai tmrMulai 100 tmrSekarang 100 tmrLama False 100

Gambar 18.5. Desain form. Ketikkan kode sumber berikut ini: Baris Kode frmLat5 Baris kode pada: 1 Option Explicit 'Deklarasi variabel level untuk sebuah modul 2 Dim WaktuMulai As Date 3 Dim WaktuSekarang As Date 4 Dim Lama As Date 5 Dim Mulai As Boolean 6 Dim Tarif As Long 7 Const HargaSewa = 1000 'Event saat mengklik tombol cmdMulai Private Sub cmdMulai_Click() 'Mengaktifkan var Mulai Mulai = True WaktuMulai = Me.txtMulai.Text Me.tmrMulai.Enabled = False Me.tmrLama.Enabled = True End Sub 'Event saat mengklik tombol cmdStop Private Sub cmdStop_Click() 'Mengaktifkan tmrMulai Me.tmrMulai.Enabled = True 'Menonaktifkan tmrLama Me.tmrLama.Enabled = False End Sub 'Event sebelum form ditutup Private Sub Form_Unload(Cancel As Integer)

8 9 10 11 12 13

14 15 16 17

18

19 20 21

22 23 24 25

26

27 28 29 30 31 32 33 34 35 36 37 38

Dim PassWord As String 'Membatalkan penutupan form Cancel = 1 'Menampilkan dialog InputBox PassWord = InputBox("Masukkan Password", _ "Password", , (Screen.Width - 5000) / 2, _ (Screen.Height - 2000) / 2) 'Jika Passwor adalah inochi maka 'form ditutup If PassWord = "inochi" Then Cancel = 0 End Sub ' Private Sub tmrLama_Timer() Dim DetikLaju As Long 'Lama adalah WaktuMulai 'dikurangi WaktuSekarang Lama = WaktuMulai - WaktuSekarang 'Mengakumulasikan detik terpakai DetikLaju = (Hour(Lama) * 3600) + _ (Minute(Lama) * 60) + Second(Lama) 'Menentukan Tarif perdetik Tarif = (HargaSewa / 3600) * DetikLaju 'Menampilkan nilai Lama pada txtLama Me.txtLama.Text = Lama 'Menampilkan besarnya Tarif Me.txtTarif.Text = "Rp. " & Tarif End Sub ' Private Sub tmrMulai_Timer() Me.txtMulai.Text = Time End Sub ' Private Sub tmrSekarang_Timer() WaktuSekarang = Time Me.txtSekarang.Text = Time End Sub

Jalankan program! Klik tombol Mulai. Anda akan melihat textbox “Lama” akan mulai mencacah waktu, dan pada textbox “Tarif” akan tercatat besarnya rupiah yang harus dibayar seorang penyewa. Coba untuk menutup form (dengan mengklik tombol Close [x]), maka akan ditampilkan Input Box yang meminta Anda mengisikan password. Jika password salah, Anda tidak akan keluar dari program.

Latihan 6
Latihan berikut ini adalah mendemonstrasikan penggunaan fungsi general yang berupa fungsi untuk menghitung nilai rata-rata, maksimum dan minimum dari sekumpulan angka-angka yang dimasukkan. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat6. Namai Form1 dengan frmLat6. Pengaturan Properti Pengaturan pada: frmLat6 No Objek Kontrol Properti Name 1 Label1 Caption

Perubahan lblAngka Angka ke-1

2 3 4

Text1 Command1 Frame1

Name Align Text Name Caption Caption Height

txtAngka 1-Right Justify 0 cmdProses &Proses Dikosongkan 30

Gambar 18.6. Desain form. Baris Kode frmLat6 Baris kode pada: 1 Option Explicit 'Deklarasi variabel level untuk sebuah modul Dim Posisi As Integer Dim Angka() As Double 'Deklarasi fungsi untuk menghitung Jumlah Function Jumlah(Angka() As Double) As Double Dim i As Long For i = 1 To UBound(Angka) Jumlah = Jumlah + Angka(i) Next End Function Function Rata_Rata(Angka() As Double) As Double Dim i As Long For i = 1 To UBound(Angka) Rata_Rata = Rata_Rata + Angka(i) Next Rata_Rata = Rata_Rata / (i - 1) End Function Function Maksimum(Angka() As Double) As Double Dim i As Long Maksimum = Angka(1) For i = 1 To UBound(Angka) If Angka(i) >= Maksimum Then Maksimum = Angka(i) End If Next End Function Function Minimum(Angka() As Double) As Double Dim i As Long Minimum = Angka(1)

2 3

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

For i = 1 To UBound(Angka) If Angka(i) <= Minimum Then Minimum = Angka(i) End If Next End Function Private Sub cmdProses_Click() CetakDiForm Posisi = 1 Me.lblAngka.Caption = "Angka ke-1" Me.cmdProses.Enabled = False Me.txtAngka.Text = 0 End Sub Private Sub Form_Load() Me.Height = 6500 Me.AutoRedraw = True Posisi = 1 End Sub Private Sub txtAngka_GotFocus() With Me.txtAngka .SelStart = 0 .SelLength = Len(.Text) End With End Sub 'Event saat menekan tombol 'saat pointer pada txtAngka Private Sub txtAngka_KeyPress( _ KeyAscii As Integer) ' ReDim Preserve Angka(Posisi) 'Jika menekan tombol Enter maka... If KeyAscii = 13 Then Angka(Posisi) = CDbl(Me.txtAngka.Text) 'Memfokuskan txtAngka txtAngka_GotFocus Posisi = Posisi + 1 ' Me.lblAngka.Caption = _ "Angka ke-" & CStr(Posisi) Me.Cls Me.cmdProses.Enabled = True End If End Sub Sub CetakDiForm() Dim i As Integer 'Mengatur batas Kiri dan batas Atas Me.ScaleLeft = -200 Me.ScaleTop = -1100 'Mengatur posisi Kiri Me.CurrentX = 0 'Pengulangan sebanyak Angka yang dimasukan For i = 1 To UBound(Angka)

53

54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69

70 71 72 73 74 75 76

'Mengatur posisi Atas Me.CurrentY = 0 + (i * 300) 'Mencetak ke form Me.Print "Angka ke-" & CStr(i) & _ " = " & CStr(Angka(i)) Next 'Mencetak baris Me.Line (0, i * 300)-(2500, i * 300) 'Mencetak teks Jumlah = ... Me.CurrentX = 0 Me.CurrentY = (i) * 300 + 100 Me.Print "Jumlah = " & _ CStr(Jumlah(Angka)) 'Mencetak teks Rata-Rata = ... Me.CurrentX = 0 Me.CurrentY = (i + 1) * 300 + 100 Me.Print "Rata-Rata = " & _ CStr(Round(Rata_Rata(Angka), 2)) 'Mencetak teks Maximum = ... Me.CurrentX = 0 Me.CurrentY = (i + 2) * 300 + 100 Me.Print "Maximum = " & _ CStr(Maksimum(Angka)) 'Mencetak teks Minimum = ... Me.CurrentX = 0 Me.CurrentY = (i + 3) * 300 + 100 Me.Print "Minimum = " & _ CStr(Minimum(Angka)) End Sub

77 78 79 80 81 82 83

84 85 86 87

Jalankan program! Ketikkan suatu nilai (angka) pada textbox: “Angka ke-1”. Tekan tombol Enter pada keyboard. Masukkan lagi nilai baru, tekan kembali tombol Enter. Lakukan berulang-ulang sesuai keinginan Anda. Tekan tombol Proses. Maka pada form akan tercetak informasi mengenai angka-angka yang telah Anda masukkan, dan hasil proses: penjumlahan, rata-rata, maksimum, dan minimum.

Gambar 18.7. Program menampilkan hasil proses.

Latihan 7

Latihan berikut ini adalah mendemonstrasikan pemograman grafis dan penggunaan metoda dragging pada pemograman. Jalankan Visual Basic pada template Standard Exe. Namai project Anda dengan nama pjkLat7. Namai Form1 dengan frmLat7. Masukkan PictureBox, Frame dan CommandButton ke dalam form. Ubah properti-propertinya sebagai berikut: Pengaturan Properti Pengaturan pada: frmLat7 No Objek Kontrol Properti Name 1 Picture1 Appearance AutoRedraw 2 Frame1 Caption Name 3 Command1 Caption

Perubahan picGambar 0-Flat True Pilih Gambar cmdClear &Clear

Di dalam Frame, gambarkan sebuah PictureBox, dan atur properti-propertinya sebagai berikut: Pengaturan Properti Pengaturan pada: frmLat7 No Objek Kontrol Properti Name AutoSize BorderStyle 4 Picture1 DragMode Index Picture

Perubahan picCap True 0-None 1-Automatic 0 Gambar dengan format ico (ikon)

Klik kanan pada PictureBox (picCap )tersebut, pilih Copy. Klik kanan pada frame, pilih Paste. Lakukan penggandaan hingga picCap berjumlah empat buah. Atur penempatan objek kontrol-objek kontrol sehingga tampilan akhir seperti pada ilustrasi gambar di bawah ini:

Gambar 18.8. Desain form. Ketikkan kode berikut: Baris Kode frmLat6 Baris kode pada: 1 Option Explicit

2 3 4 5 6 7 8 9 10 11 12 13 14 15

' Dim Dim Dim Dim ' Sub

sX!, sY!, aX!, aY! x1!, y1!, x2!, y2! idxGambar As Integer Pilih As Boolean

16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

CapLingkar(X As Single, Y As Single) Dim Teks As String Dim txWdt As Long, txHgt As Long sX = X: sY = Y With Me.picGambar Teks = "ANDI OFFSET" txWdt = .TextWidth(Teks) txHgt = .TextHeight(Teks) 'Menentukan tebal garis .DrawWidth = 4 'Menentukan warna garis .ForeColor = &H800000 'Menggambar lingkaran pertama 'dengan titik pusat (sY, sY) 'dan berdiameter 800px Me.picGambar.Circle (sX, sY), 800 'Menentukan tebal garis .DrawWidth = 2 'Menentukan warna garis .ForeColor = vbRed 'Menggambar lingkaran kedua Me.picGambar.Circle (sX, sY), 450 'Menggambar kotak Me.picGambar.Line (sX - 1000, _ sY - 200)-Step _ (2000, 400), RGB(192, 192, 192), BF .CurrentX = sX - txWdt / 2 .CurrentY = sY - txHgt / 2 .ForeColor = vbWhite 'Mencetak Teks Me.picGambar.Print Teks End With End Sub Private Sub cmdClear_Click() 'Membersihkan PictureBox Me.picGambar.Cls x1 = 0: y1 = 0 x2 = Me.picGambar.ScaleWidth y2 = Me.picGambar.ScaleHeight End Sub Private Sub Form_Load() x1 = 0: y1 = 0 x2 = Me.picGambar.ScaleWidth y2 = Me.picGambar.ScaleHeight Pilih = False End Sub Private Sub Form_Resize() On Error Resume Next

41 42 43 44 45 46

'Menyesuaikan posisi dan ukuran picGambar 'dengan form Me.picGambar.Move 1560, 0, _ Me.ScaleWidth - 1560, Me.ScaleHeight End Sub Private Sub picCap_Click(Index As Integer) idxGambar = Index End Sub Private Sub picCap_DragOver(Index As Integer, _ Source As Control, X As Single, _ Y As Single, State As Integer) On Error Resume Next idxGambar = Index Pilih = True 'Mengubah icon saat dragging Source.DragIcon = _ Me.picCap(idxGambar).Picture End Sub 'Event saat meletakkan icon ke picGambar Private Sub picGambar_DragDrop( _ Source As Control, _ X As Single, Y As Single) If idxGambar = 3 Then CapLingkar X, Y Else: CapGambar idxGambar, X, Y End If End Sub 'Event saat pointer mouse di atas picGambar Private Sub picGambar_MouseMove( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Pilih = True Then 'Mengubah pointer mouse Me.picGambar.MousePointer = 99 Me.picGambar.MouseIcon = _ Me.picCap(idxGambar).Picture 'Jika sambil menekan tombol kanan mouse If Button = 2 Then If idxGambar = 3 Then CapLingkar X, Y Else: CapGambar idxGambar, X, Y End If End If End If End Sub 'Event saat melepas tombol mouse Private Sub picGambar_MouseUp( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) If idxGambar = 3 Then CapLingkar X, Y Else: CapGambar idxGambar, X, Y

47 48 49 50 51

52

53 54 55 56 57

58

59 60 61

62 63 64 65 66 67 68 69

70

71 72 73

74 75 76 77 78 79

End If End Sub Sub CapGambar(Index%, X!, Y!) Dim wPic As Long, hPic As Long wPic = Me.picCap(Index).Width hPic = Me.picCap(Index).Height 'Menggambar pada picGambar 'sesuai gambar dari picCap terpilih Me.picGambar.PaintPicture _ Me.picCap(Index).Picture, _ X - wPic / 2, Y - hPic / 2, wPic, hPic End Sub

80

81

Jalankan program, klik pada sebuah gambar, tahan tombol kiri mouse, lakukan dragging (menyeret) ke daerah ‘kanvas’. Pada ‘kanvas’ (picturebox) akan tercetak gambar sesuai gambar yang dipilih. Anda juga bisa melakukannya dengan mengklik sebuah gambar, kemudian klik pada ‘kanvas’. Coba pula dengan mengklik tombol kanan mouse, lakukan dragging (menyeret) ke daerah ‘kanvas’.

Gambar 18.9. Program sedang berjalan.

Latihan 8
Latihan berikut ini adalah contoh program untuk mengacak nomor seperti saat pengundian. Jalankan Visual Basic pada Standard Exe. Namai project dengan pjkLat8. namai form1 dengan frmLat8. Ubah BackColor form menjadi warna hitam. Tambahkan objek kontrol-objek kontrol berikut ini dan atur propertinya. Pengaturan Properti Pengaturan pada: frmLat8 No Objek Kontrol Properti Name Style 1 Command1 Picture DisabledPicture 2 3 Timer1 Image1 Name Interval Enabled Name Picture

Perubahan cmdAcak 1-Graphic Gambar ikon (format .ico) Gambar ikon (format .ico) Timer1 100 False imgIcon Samakan dengan

gambar dari properti: Picture cmdAcak

Gambar 18.10. Desain form. Ketikkan kode berikut: Baris Kode Baris kode pada: frmLat8 1 Option Explicit 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Dim ANGKA$, Acak As Byte Private Sub cmdAcak_Click() If Acak = 0 Then Acak = 1 'Mengaktifkan Timer Me.Timer1.Enabled = True 'Mengubah gambar tombol Me.cmdAcak.Picture = _ Me.cmdAcak.DisabledPicture Else: Acak = 0 'Menonaktifkan Timer Me.Timer1.Enabled = False 'Mengubah gambar tombol Me.cmdAcak.Picture = _ Me.imgIcon.Picture End If End Sub Private Sub Form_Load() Me.AutoRedraw = True AcakAngka End Sub Private Sub Timer1_Timer() AcakAngka End Sub Sub AcakAngka() Dim INDEX As Integer Me.Cls 'Mengatur Font dari form Me.Font.Name = "Courier New" Me.Font.Size = 20 'Mulai mengacak ANGKA = Int(Rnd * 10) & Int(Rnd Int(Rnd * 10) & Int(Rnd Int(Rnd * 10) & Int(Rnd Int(Rnd * 10) & Int(Rnd

* * * *

10) 10) 10) 10)

& & & &

_ _ _ _

26 27 28 29 30 31 32 33 34 35 36 37 38

Int(Rnd * 10) & Int(Rnd * 10) & _ Int(Rnd * 10) & Int(Rnd * 10) & _ Int(Rnd * 10) & Int(Rnd * 10) Me.ForeColor = vbGreen Me.CurrentX = 1220 Me.CurrentY = 250 'Mencetak Angka (bayangan 1) Me.Print ANGKA Me.ForeColor = vbBlue Me.CurrentX = 1210 Me.CurrentY = 270 'Mencetak Angka (bayangan 2) Me.Print ANGKA Me.ForeColor = vbRed Me.CurrentX = 1205 Me.CurrentY = 275 'Mencetak Angka Me.Print ANGKA End Sub

Jalankan program klik tombol.

Gambar 18.11. Program sedang berjalan.

Latihan 9
Mari kita berkreasi dalam grafis! Latihan kali ini mendemonstrasikan cara memutar gambar dan menggambar transparan. Jalankan Visual Basic pada Standard Exe. Namai project dengan pjkLat9. namai form1 dengan frmLat9. Tambahkan objek kontrol-objek kontrol berikut ini dan atur propertinya.

Pengaturan Properti Pengaturan pada: frmLat9 No Objek Kontrol Properti Name AutoSize 1 Picture1 Picture SacleMode Name AutoSize 2 Picture2 Picture SacleMode Name Caption

3

Command1

Perubahan picSumber True Terserah Anda (bertipe bmp) 3-Pixel picSumber True Terserah Anda (bertipe bmp) 3-Pixel cmdPutar90 &Putar 90

4

Command2

Name Caption

cmdTransparan &Transparan

Gambar 18.12. Desain form. Ketikkan kode berikut: Baris Kode Baris kode pada: frmLat9 1 Option Explicit 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Private Sub cmdPutar90_Click() Dim x, y 'Mengubah Scalemode menjadi Pixel Me.picSumber.ScaleMode = 3 Me.picTarget.ScaleMode = 3 'Membersihkan picTarget picTarget.Cls 'Menggambar dan memutar 90º picTarget For y = 0 To Me.picSumber.ScaleHeight For x = 0 To Me.picSumber.ScaleWidth Me.picTarget.PSet (x, y), _ Me.picSumber.Point(y, x) Next Next End Sub Private Sub cmdTransparan_Click() Dim XRd, YRd, PelX, PelY, PelC, ScrX, ScrY Me.picTarget.ScaleMode = 1 ' ScrX = Screen.TwipsPerPixelX ScrY = Screen.TwipsPerPixelY 'Membersihkan picTarget picTarget.Cls 'Mengubah Scalemode picTarget Me.picTarget.ScaleMode = 1 'Menggambar transparan picTarget For YRd = 0 To (picSumber.ScaleHeight - 1) PelY = picSumber.Top + (YRd * ScrY) For XRd = 0 To ( _ picSumber.ScaleWidth - 1) PelX = picSumber.Left + _ (XRd * ScrX)

24 25 26 27 28 29 30 31

PelC = picSumber.Point(XRd, YRd) If PelC <> picSumber.Point(0, 0) _ And PelC > 0 Then picTarget.Line (PelX, PelY)- _ Step(ScrX, ScrY), PelC, BF End If Next XRd DoEvents Next YRd End Sub

Jalankan program! Klik tombol Putar 90o. Maka picturebox ke 2 akan menggambar ulang dan memutar 90o gambar dari picturebox pertama. Klik tombol Transparan, gambar pada picturebox pertama akan digambar ulang secara transparan.

Gambar 18.13. Program sedang berjalan.

Latihan 10
Kali ini kita masih berkreasi dalam grafis! Latihan kali ini akan mendemonstrasikan cara memutar gambar dan menggambar transparan. Jalankan Visual Basic pada Standard Exe. Namai project dengan pjkLat10. namai form1 dengan frmLat10. Tambahkan objek kontrol-objek kontrol berikut ini dan atur propertinya. Pengaturan Properti Pengaturan pada: frmLat10 No Objek Kontrol Properti Name AutoSize 1 Picture1 Appearance BorderColor 2 Label1 Caption 3 Label2 Caption 4 Label3 Caption 5 Label4 Caption 6 Label5 Caption 7 Label6 Caption Name 8 Combo1 Text Name 9 Combo2 Text 10 Text1 Name

Perubahan picTulis True 0-Flat Putih &Nama Font &Ukuran Font Posisi &Kiri Posisi &Atas &Teks &Warna cboFont Dikosongkan cboUkuran Dikosongkan txtX

11 12

Text2 Text3

13

Picture2

14 15

Command1 Command2

Text Name Text Name Text Name AutoSize Appearance BorderColor Name Caption Name Caption

0 txtY 0 txtText Dikosongkan picWarna True 0-Flat Putih cmdTulis &Tulis cmdClear &Clear

Gambar 18.14. Desain form. Ketikkan kode berikut: Baris Kode Baris kode pada: frmLat10 1 Option Explicit 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Dim ptX, ptY, intX, intY Private Sub cmdTulis_Click() ' Mencetak tulisan ke picturebox With Me.picTulis .CurrentX = Val(Me.txtX.Text) .CurrentY = Val(Me.txtY.Text) .Font.Name = Me.cboFont.Text .Font.Size = Me.cboUkuran.Text Me.picTulis.Print Me.txtText.Text End With End Sub Private Sub cmdClear_Click() picTulis.Cls End Sub Private Sub Form_Load() Dim i As Integer, perWdt As Long Me.picTulis.AutoRedraw = True

16

17 18 19

20 21 22 23 24 25 26 27 28 29 30

Me.picWarna.AutoRedraw = True 'Mengisi combo ukuran dengan angka 'mulai dari 8 For i = 8 To 30 Step 2 Me.cboUkuran.AddItem i Next 'Mengisi combo dengan daftar font dari 'sistem komputer Me.cboUkuran.ListIndex = 0 For i = 1 To Screen.FontCount Me.cboFont.AddItem Screen.Fonts(i) Next Me.cboFont.ListIndex = 0 End Sub Private Sub Form_Paint() Dim i, perWdt As Long perWdt = picWarna.Width / 15 For i = 0 To 15 Me.picWarna.Line (i * perWdt, 0)- _ Step((i + 1) * perWdt, _ Me.picWarna.Height), _ QBColor(i), BF Next Me.picWarna.DrawWidth = 2 'Menggambar lingkaran (titik) Me.picWarna.FillStyle = vbFSSolid Me.picWarna.Circle (intX, intY), 30 End Sub Private Sub picWarna_Click() Form_Paint End Sub Private Sub picWarna_MouseDown( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) intX = X intY = Y picTulis.ForeColor = picWarna.Point(X, Y) End Sub

31 32 33 34 35 36 37 38 39

40 41 42 43

Gambar 18.15. Program sedang berjalan.

Pada saat form dijalankan, combo Font akan diisi nama-nama font yang ada dalam sistem komputer Anda. Picturebox Warna akan dipecah menjadi 16 warna dasar. Klik picturebox Warna, maka posisi Anda mengklik akan ditandai oleh sebuah titik. Ketikkan data yang diperlukan, kemudian klik Tulis, maka pada picturebox Tulis akan tergambar teks dengan kriteria yang telah Anda tentukan.

Latihan 11
Bagaimana cara mempercantik MDIForm? Salah satunya mungkin dengan memberinya gambar. Tapi bagaimana caranya? MDIForm bisa dikatakan sebagai form yang ‘rewel’, karena tidak mudah untuk disisipi oleh objek kontrol. Latihan kali ini, adalah trik untuk mempercantik MDIForm. Jalankan Visual Basic pada Standard Exe. Namai project dengan pjkLat11. namai form1 dengan frmLogo. Tambahkan MDIForm ke dalam project Anda. Namai dengan mdiUtama. Kembali ke form1 (frmLogo). Ubah properti BorderStyle menjadi: 0-None. Ubah pula MDIChild menjadi: True. Tambahkan PictureBox. Ubah propertinya seperti pada tabel di bawah ini.

Gambar 18.16. Desain Form dan MDIForm. Pengaturan Properti Pengaturan pada: frmLogo No Objek Kontrol Properti Name AutoSize 1 Picture1 Appearance BorderColor Picture Ketikkan kode berikut: Baris Kode Baris kode pada: mdiUtama 1 Option Explicit 2 3 4 5 Private Sub MDIForm_Resize() On Error Resume Next frmLogo.Move 0, 0, mdiUtama.ScaleWidth, _ mdiUtama.ScaleHeight End Sub

Perubahan picLogo True 0-Flat Putih Terserah Anda

Baris kode pada: frmLogo 1 Option Explicit

2 3 4

6

Private Sub Form_Resize() On Error Resume Next Me.picLogo.Move (Me.ScaleWidth - _ Me.picLogo.Width) / 2, (Me.ScaleHeight - _ Me.picLogo.Height) / 2 End Sub

Jalankan program. Sekarang pada MDIForm sudah tercetak gambar yang akan selalu berada di tengahtengah.

Gambar 18.17. Program sedang berjalan.

Latihan 12
Sekarang Anda akan saya ajak beranimasi. Berikut ini latihan animasi dengan menggunakan objek kontrol PictureClip. Jalankan Visual Basic pada Standard Exe. Namai project dengan pjkLat12. namai form1 dengan frmLat12. Klik menu Project Component... Pada dialog yang ditampilkan, klik/tandai list “Microsoft PictureClip Control 6.0”, klik OK. Gambarkan objek kontrol PictureClip, PictureBox, dan Timer ke dalam form. Ubah propertinya seperti pada tabel di bawah ini. Pengaturan Properti Pengaturan pada: frmLat12 No Objek Kontrol Properti Name Cols 1 PicClip1 Rows Picture Name AutoSize 2 Picture1 Appearance BorderColor Picture Name 3 Timer Interval

Perubahan pccDadu 6 3 Pada CD picDadu True 0-Flat Putih Terserah Anda Timer1 100

Gambar 18.18. Desain Form. Ketikkan kode berikut: Baris Kode Baris kode pada: frmLat12 1 Option Explicit 2 3 4 5 6 7 8 Dim x Private Sub Form_Load() picDadu.Picture = pccDadu.GraphicCell(2) x = 1 End Sub Private Sub Form_Resize() 'Melarikan picDadu ke tengah form Me.picDadu.Move _ (Me.ScaleWidth - Me.picDadu.Width) / 2, _ (Me.ScaleHeight - Me.picDadu.Height) / 2 End Sub Private Sub Timer1_Timer() 'Menggambar picDadu dengan gambar 'dari PictureClip x = x + 1 If x = (Me.pccDadu.Rows * _ Me.pccDadu.Cols) Then x = 0 picDadu.Picture = _ pccDadu.GraphicCell(x) End Sub

9 10

11 12 13 14

Gambar 18.19. Program sedang berjalan.

Sign up to vote on this title
UsefulNot useful