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