download

Matakuliah
Tahun
Versi
: T0063/Pemrograman Visual
: 2005
: 1/0
Pertemuan 02
Programming Style
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Merumuskan programming style di dalam
bahasa pemrograman visual (C2)
2
Outline Materi
Programming Style
• Struktur Aplikasi VB
• Prefix
• Struktur Kendali Program
• Angka
• String
• Date Time
3
Struktur Aplikasi VB
Struktur Aplikasi terdiri dari :
• Form, layar window dimana user interface didesain
• Controls, fitur grafikal di dalam form untuk interaksi pengguna (object di dalam
toolbox, contoh label, textbox, command button, dst)
• Properties, setiap form atau control mempunyai karakteristik yang bisa diatur
• Methods, Built-in procedure yang digunakan untuk menjelaskan aksi suatu object
tertentu
• Event procedures, Custom procedure yang digunakan untuk menjelaskan aksi yang
dilakukan oleh object tertentu jika suatu event tertentu aktif. (Misal, jika
TombolSimpan di Double Click)
• General procedures, Custom procedure yang menjelaskan aksi secara umum, tidak
terikat pada suatu object tertentu.
• Modules, sekumpulan procedure, variable dan konstanta yang digunakan secara
umum di dalam aplikasi.
4
Prefix
Ada aturan tidak tertulis yang
digunakan oleh para programmer
di seluruh dunia, yaitu penggunaan
prefix untuk setiap variable/object
yang digunakan dalam VB.
Object
Form
CommandButton
Prefix
frm
cmd
Text box
txt
Label
lab
List Box
lst
Combo Box
cmb
Scroll Bar
scr
Menu
mnu
frmEntryData
Option Button
opt
txtNamaKaryawan
Check Box
chk
Picture Box
pic
Frame
fra
Grid
grd
Graph
gph
(lihat table disamping)
Contoh penamaan :
lblKodeDosen
5
Struktur Kendali Program
Decision Structures
IF
If condition Then statement
If condition then
statements
End If
If condition then
statements if condition true
Else
statements if condition false
end if
If condition then
statements if condition true
ElseIf condition then
statements if condition true
Else
statements if condition false
end if
6
Struktur Kendali Program
Contoh penggunaan IF :
•Jika ada sisa gaji maka masukkan sisa gaji ke dalam tabungan
•Jika ada sisa gaji maka masukkan sisa gaji ke dalam tabungan, jika tidak maka
tidak menabung bulan ini
•JIka ada sisa gaji maka masukkan sisa gaji ke dalam tabungan dan anggap
sisa gaji tidak ada, jika tidak maka tidak menabung bulan ini
' Single line version, without Else clause
If SisaGaji > 0 Then Tabungan = Tabungan + SisaGaji
' Single line version, with Else clause
If SisaGaji > 0 Then Tabungan = Tabungan + SisaGaji Else
Tabungan = 0
' Single line, but with multiple statements separated by
colons
If SisaGaji > 0 Then Tabungan = Tabungan + SisaGaji:
SisaGaji = 0 Else Tabungan = 0
7
Struktur Kendali Program
Contoh penggunaan IF :
Jika ada sisa gaji maka masukkan sisa gaji ke dalam tabungan dan anggap
sisa gaji tidak ada, jika tidak maka tidak menabung bulan ini
' Multiline version of the above code (more
readable)
If SisaGaji > 0 Then
Tabungan = Tabungan + SisaGaji
SisaGaji = 0
Else
Tabungan = 0
End If
8
Struktur Kendali Program
Contoh penggunaan IF :
Jika ada sisa gaji maka masukkan sisa gaji ke dalam tabungan, jika sisa gaji
dibawah nol (minus) maka ambil kekurangan tsb dari tabungan, selain itu
tidak menabung bulan ini
' An example of If..ElseIf..Else block
If SisaGaji > 0 Then
Tabungan = Tabungan +SisaGaji
ElseIf SisaGaji < 0 Then
Tabungan = Tabungan - SisaGaji
Else
Tabungan = 0
End If
9
Struktur Kendali Program
Contoh Select :
Decision Structures
Select
Select Case Opr
Case Opr1
dothis
Case Opr2
dothat
Case Opr3
dotheother
Case Else
do nothing
End Select
Select Case Index
Case 0
DoThis
Case 1
DoThat
Case Else
DoOther
Ens Select
Select Case Mid(“D4D4R”, 2, 1)
Case "0" To "9"
' Ini angka
Case "A" To "Z", "a" To "z"
' Ini huruf
Case ".", ",", ";", ":", "?"
' Ini tanda baca
Case Else
' Karakter aneh
End Select
10
Struktur Kendali Program
Loop Structures
While & Do
Bentuk 1:
While condition
statements
statements
Wend
Bentuk 2:
Do Until condition
statements
statements
Loop
Bentuk 3:
Do
statements
statements
Loop Until condition
For
For counter = startvalue To endvalue [Step increment]
statements
Next [counter]
11
Struktur Kendali Program
Contoh Penggunaan While-Wend
Selama masih ada barang yang harus dibeli dalam daftar belanjaan, belanjalah
untuk barang tersebut, jika sudah selesai maka bayarlah
While DaftarBelanjaan>0
DoBelanjaItem
DaftarBelanjaan = DaftarBelanjaan – 1
Wend
DoBayar
12
Struktur Kendali Program
Contoh Penggunaan Do Until - Loop
Sampai tidak ada barang yang perlu dibeli dalam daftar belanjaan, maka
belanjalah, jika sudah bayarlah
Do Until DaftarBelanjaan=0
DoBelanjaItem
DaftarBelanjaan = DaftarBelanjaan – 1
Loop
DoBayar
13
Struktur Kendali Program
Contoh Penggunaan Do – Loop Until
Belanjalah barang yang perlu dibeli, sampai tidak ada lagi barang yang perlu
dibeli dalam daftar belanjaan, jika sudah selesai bayarlah
Do
DoBelanjaItem
DaftarBelanjaan = DaftarBelanjaan – 1
Loop Until DaftarBelanjaan=0
DoBayar
14
Struktur Kendali Program
Contoh Penggunaan For – Next
Belanjalah barang satu per satu berdasarkan barang dalam daftar belanjaan,
jika sudah bayarlah
For BarangKe=1 to DaftarBelanjaan
DoBelanjaItem
Next
DoBayar
For digunakan untuk Array
Dim ctrl As Control
For Each ctrl In Controls
ctrl.Caption = "OIIIII"
Next
15
Keluar dari Struktur Kendali
•
•
•
•
Exit Do
Exit For
Exit Sub
Exit Function
16
Angka
Operator Matematik
• Penambahan dan Pengurangan
– Operator “+”
• Penambahan dua buah bilangan
Y=5+6, akan menghasilkan angka 11
– Operator “-”
• Pengurangan dua buah bilangan
Y=10-6, akan menghasilkan angka 4
• Pembagian
– Operator “/”
• Pembagian yang menghasilkan nilai double (pecahan)
Y = 5/2, akan menghasilkan Y=2.5
– Operator “\”
• Pembagian yang menghasilkan nilai integer (bulat)
Y=5\2, akan menghasilkan Y=2
– Operator “\” 4 kali lebih cepat dari operator “/” (Mengapa ?)
17
Angka
• Perkalian dan Pangkat
– Operator “*”
• Digunakan untuk mengalikan dua buah bilangan
Y= 5*6, akan menghasilkan Y=30
– Operator “^”
• Digunakan untuk menghasilkan bilangan pangkat
• Selalu menghasilkan tipe bilangan double
• Relatif lebih lambat, untuk bilangan berpangkat kecil,
pertimbangkan penggunaan operator perkalian saja
Y=2^3, akan menghasilkan Y=8 (jika menggunakan perintah Y=2*2*2,
akan 20 kali lebih cepat)
18
Angka
• Fungsi lainnya :
–
–
–
–
–
–
–
–
–
Mod (modulus atau sisa bagi)
Abs (menentukan nilai absolut suatu angka)
Sgn (nilai -1, 0 atau +1 untuk angka negatif, nol atau positif)
Sqr (menghitung akar suatu angka)
Int (membulatkan angka kebawah menjadi bilangan bulat)
Fix (membulatkan angka dengan membuang angka desimal)
Round (membulatkan angka ke desimal terdekat*)
Val (konversi dari text ke angka, bertipe double)
Pelajari juga fungsi : CInt, CLng, CSng, CDbl, CCur
*Khusus angka dengan desimal tepat 0.5, Round akan membulatkan keatas jika Ganjil, dan
membulatkan ke bawah jika angka tersebut Genap
19
Angka
• Contoh penggunaan fungsi bilangan
Contoh :
5 mod 2 , hasilnya 1
4 mod 2 , hasilnya 0
Abs(-100) ,
hasilnya 100
Abs(100), hasilnya 100
Sgn(-15), hasilnya -1
Sgn(0),
hasilnya 0
Sgn(1000), hasilnya +1
Sqr(5),
hasilnya 2.23
Int(1.2)
hasilnya 1
Int(-1.2) hasilnya 2
Fix(1.2)
hasilnya 1
Fix(-1.2) hasilnya -1
Round(1.45) hasilnya 1
Round(1.55)
hasilnya 2
Round(1.23456,4)hasilnya 1.2346
Round(1.5) hasilnya 2
Round(2.5) hasilnya 2, juga
Val(“11”) hasilnya 11
20
Angka
Operator Pembanding
Ada 6 operator pembanding :
=
<
<=
>
>=
<>
• Dapat diterapkan pada angka maupun string
• Sering digunakan sebagai kondisi dalam seleksi
• Menghasilkan nilai False(0) atau True(-1)
If (6>5)= -1 Then
Print “Benar”
End If
Sama artinya dengan,
If (6>5)= True Then
Print “Benar”
End If
21
Angka
Format Angka
Digunakan untuk mengatur tampilan angka, hasilnya
berupa string.
Syntax :
Format(Expression, [Format], [FirstDayOfWeek As VbDayOfWeek =
vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear =
vbFirstJan1])
Format(1234.567, "#,##0.00")
Format(0.234, "#.#%")
Format(12345.67, "#.###E+")
Format(12345.67, "#.###E-")
hasilnya
hasilnya
hasilnya
hasilnya
"1,234.57"
"23.4%"
"1.235E+4"
"1.235E4“
22
Angka
• Angka Random
– Rnd , untuk menghasilkan angka random, nilai 0<=
Rnd <1, berkaitan dengan fungsi waktu
Result = Int(Rnd*Akhir)+Awal
(Random angka dari Awal sampai Akhir)
– Randomize, untuk mengacak deret random yang
dihasilkan oleh Rnd
Contoh (Random angka dari 1 sampai 6):
Randomize
For i = 1 To 20
Print Int(Rnd * 6) + 1
Next
(Bedakan jika perintah Randomize
dihilangkan!)
23
String
Operator dan Fungsi Dasar String
• Concatenation
– Operator “&”
– Untuk menggabungkan beberapa string
“Johny” & ”123”, menjadi “Johny123”
24
String
• Fungsi Lainnya :
–
–
–
–
–
–
–
–
–
–
–
–
Left(s,n), menampilkan string s dari kiri sebanyak n
Right(s,n), menampilkan string s dari kanan sebanyak n
Mid(s,n,m), menampilkan string s mulai dari posisi n sebanyak m
Len(s),
menampilkan jumlah karakter di dalam string s
LTrim(s), menghapus spasi di sebelah kiri string s
RTrim(s), menghapus spasi di sebelah kanan string s
Trim(s), menghapus spasi di sebelah kiri dan kanan string s
Asc(c),
menghasilkan nilai ASCII dari karakter c
Chr(n),
menghasilkan karakter dari sebuah nilai ASCII n
Space(n), menghasilkan deret spasi sebanyak n
String(n,c),menghasilkan deret karakter c sebanyak n
StrComp(s1,s2, vbTextCompare), menghasilkan nilai 0 jika string s1
dan string s2 berisi string yang sama, non case-sensitive
– LCase(s) atau UCase(s), mengubah string s menjadi huruf besar atau
kecil
– StrConv(s,p), mengubah string s menjadi huruf besar, kecil atau proper
sesuai parameter p (vbUpperCase, vbLowerCase,vbProperCase)
25
String
• Contoh penggunaan fungsi string
Contoh :
Left(“Morpheus”,4) ,
hasilnya
Right(“Gandalf”,3),
hasilnya
Mid(“Bruce”,2,3),
hasilnya
Len(“Scream”)
hasilnya
LTrim(“ ayoo ”)
hasilnya
RTrim(“ ayoo ”)
hasilnya
Trim(“ ayoo ”)
hasilnya
Asc(“A”)
hasilnya
Chr(65)
hasilnya
Space(5)
hasilnya
String(5,”.”)
hasilnya
Strcomp(“vb”,”VB”,vbTextCompare)
hasilnya
UCase(“besar”)
hasilnya
LCase(“KECIL”)
hasilnya
StrConv(“new YORK”)
hasilnya
“Morph”
“alf”
“ruc”
6
(“ayoo ”)
(“ ayoo”)
(“ayoo”)
65
“A”
“
”
“.....”
0 (sama)
“BESAR”
“kecil”
“New York”
26
String
• Find dan Replace String
– Instr([n],s1,s2), mencari posisi string s2 di dalam
string s1 mulai dari posisi n (jika n tidak diisi maka
secara default nilainya 0). Case-sensitive
– s Like ptrn, mencocokkan apakah string s sesuai
dengan pattern ptrn. Tanda “?” mewakili karakter
tunggal, tanda “*” mewakili 0 sampai banyak karakter,
tanda “#” mewakili angka tunggal sedangkan tanda “!”
menyatakan negasi.
Option Compare Text, perintah ini jika dijalankan
sebelum perintah Like, maka perintah Like non casesensitive
27
String
InStr("abcde ABCDE", "ABC")
hasilnya
InStr(8, "abcde ABCDE", "ABC")
hasilnya
InStr(1, "abcde ABCDE", "ABC", vbTextCompare)
hasilnya
"AB123" Like "AB###"
hasilnya
"ABCDEFGHI-VWXYZ" Like "ABC*XYZ"
hasilnya
"12w4X" Like "1???X"
hasilnya
"A123" Like "[A-C]###“
hasilnya
"OOP" Like "[AEIOU][A-Z][A-Z]“
hasilnya
"K12BC" Like "[!0-9]??*"
hasilnya
7
0"
1
True
True
True
True
True
True
28
String
– Replace(Source, Find, Replace, [Start], [Count],
[CompareMethod])
Mencari string Find di dalam string Source dan diganti dengan
string Replace, string Source diambil dari posisi Start dan
penggantian dilakukan sebanyak Count. (CompareMethod jika
berisi “vbTextCompare” maka non case-sensitive)
– StrReverse(s), membalik urutan karakter di dalam
string s
– Split(s), memecah string s menjadi array string
bedasarkan spasi
– Join(As), menggabungkan kembali array string
menjadi string
29
String
Replace("abc ABC abc", "ab", "123")
hasilnya "123c ABC 123c"
Replace("abc ABC abc", "ab", "123", 5, 1)
hasilnya "ABC 123c" Print
StrReverse(“bolak”)
hasilnya “kalob”
Kata=Split(“Rujak Cingur”)
hasilnya
kata(0)=“Rujak”, kata(1)=“Cingur”
Join(kata)
hasilnya “Rujak Cingur”
30
Date Time
• Date Time
• Date dan Time dalam Vb bukan berupa fungsi,
namun adalah property dari sistem
Waktu = Date & " " & Time
Date = "10/14/98"
Date = "October 14, 1998"
31
Date Time
• Date & Time Serial
Membentuk angka angka yang dimasukkan
menjadi bertipe Date atau Time
– DateSerial (yyyy,mm,dd)
– TimeSerial(hh,mm,ss)
32
Date Time
• DatePart(interval, Date)
Untuk mengetahui informasi bagian terntentu dari tanggal
Contoh : DatePart(m,Now)
33
Date Time
• DateAdd (interval, number,date)
Menambah tanggal date, sesuai setting interval sebanyak
number
Contoh : DateAdd(m,3,Now)
• DateDiff(interval, startdate, enddate )
Menghitung selisih tanggal startdate dan enddate
berdasarkan setting interval
Contoh : DateDiff(m,”01/01/2000”,Now)
34
Date Time
• Format (date, ekspresi)
Format(Now,"dd-mm-yyyy")
Format(Now, "hh:mm:ss")
35