BAB III Struktur Program Setelah mengenal masing-masing bagian pada window utama Visual Basic beserta fungsinya, selanjutnya akan dipelajari struktur yang diperlukan dalam pemrograman bahasa Visual Basic. STRUKTUR DATA Tipe Data Secara garis besar, tipe data yang dikenal oleh Visual Basic terbagi dalam 3 bagian : 1. Tipe data Numerik Tipe data ini merupakan tipe data berupa angka yang pada tipe data ini dapat dilakukan operasi perhitungan, misalkan : dijumlahkan, dikalikan, dan sebagainya. Ukuran Jenis Karakter Jangkauan Memori Byte 1 byte 0 s.d 255 Boolean 2 byte True atau False Integer 2 byte % -32.768 s.d 32,767 Long 4 byte & -2.147.483.648 s.d 2.147.483.647 Negatif -3,402823E38 s.d –1,401298E-45 Single 4 byte ! Positif 1,401298E-45 s.d –3,402823E38 Negatif -1,79769373486232E308 s.d -4,94065645841247E-324 Double 8 byte # Positif 4,94065645841247E-324 s.d 1,79769373486232E308 -922.337.203.685.477,5808 s.d Currency 8 byte @ 922.337.203.685.477,5807 Sebagai catatan, tipe data currency yang terdiri dari 15 digit angka di depan tanda pemisah desimal dan 4 angka di belakang tanda pemisah desimal cocok digunakan dalam perhitungan keuangan. Simbol khusus dalam kolom karakter merupakan simbol yang digunakan dalam pendeklarasian variabel. Secara default Visual Basic menggunakan jenis Single Microsoft Visual Basic 6.0 – by Iman Basuni
untuk data Numerik. Hal ini berarti Visual Basic menganggap variabel numerik yang tidak dideklarasikan sebagai tipe data Single. 2. Tipe data String Tipe data String berupa kumpulan dari karakter yang dianggap nilai tunggal. Pada data String tidak dapat dilakukan operasi perhitungan. Ukuran Jenis Jangkauan Memori 0 s.d mendekati 2 milyar 10 byte + String (variabel) (atau sekitar 64K karakter untuk Windows panjang string versi sebelumnya) 1 s.d mendekati 2 milyar String (Fixed) Panjang string (atau sekitar 64K karakter untuk Windows versi sebelumnya) 3. Tipe data Variant Tipe data ini merupakan kombinasi dari tipe data Numerik dengan String. Ukuran Jenis Jangkauan Memori Date 8 byte 1 January 100 s.d 31 December 9999 Variant Sembarang nilai Numerik dalam tipe 16 byte (dengan jangkauan) Double 22 byte + Variant panjang Sama dengan Jangkauan String (dengan string) string Variabel dan Deklarasi Variabel adalah sebuah tempat yang dialokasikan untuk mewakili sembarang tipe nilai, dan dapat dimodifikasi selama program berjalan. Untuk memudahkan mengenali kegunaan setiap variabel, diperlukan nama yang berlainan. Memberi nama Variabel Ada beberapa ketentuan dalam memberi nama sebuah variabel, yaitu : 1. Harus diawali dengan karakter huruf 2. Hanya berisi huruf, angka, dan garis bawah (underscore). Tidak boleh memuat spasi, tanda baca, dan Reserverd Word (perintah-perintah khusus yang digunakan dalam pemrograman Visual Basic). 3. Panjang Maksimal 255 karakter. Microsoft Visual Basic 6.0 – by Iman Basuni
Dalam pendeklarasian suatu variabel, dapat mempergunakan beberapa Statement (pernyataan) sebagai berikut : 1. Statement DIM Statement ini adalah pernyataan yang umum digunakan untuk mendeklarasikan suatu variabel. Bila digunakan dalam suatu level Modul, maka variabel tersebut akan berlaku di seluruh prosedur dalam Modul yang bersangkutan, sedangkan jika dideklarasikan pada suatu prosedur maka variable tersebut hanya berlaku pada prosesur yang bersangkutan Contoh : DIM Jumlah As Integer DIM Tanggal DIM Tgl, Jml As Integer, Nama As String 2. Statement PRIVATE Deklarasi dengan pernyataan ini dilakukan pada level Modul, dan variabelnya hanya berlaku pada Modul dimana variabel ini dideklarasikan. Contoh : PRIVATE Jumlah As Integer PRIVATE Tanggal PRIVATE Tgl, Jml As Integer, Nama As String 3. Statement PUBLIC Deklarasi dengan pernyataan ini dilakukan pada level Modul, dan variabelnya berlaku di semua prosedur yang terdapat di seluruh Modul dalam program aplikasi. Contoh : PUBLIC Jumlah As Integer PUBLIC Tanggal PUBLIC Tgl, Jml As Integer, Nama As String 4. Statement STATIC Deklarasi dengan pernyataan ini dilakukan pada level prosedur, tetapi variabel ini berbeda dengan variabel yang lainnya, dimana variabel statik tetap menyimpan nilai yang dimuatnya meskipun program sudah keluar dari prosedur. Sehingga bila program memangil prosedur kembali, nilai variabel masih tetap sama. Contoh : STATIC X As Integer STATIC Y STATIC KODE As Integer Microsoft Visual Basic 6.0 – by Iman Basuni
Pengkonversian Tpe Data Visual Basic memberikan beberapa fungsi untuk mengkonversikan suatu tipe data ke tipe yang lain pada suatu perintah. Berikut ini tabel fungsi pengkonversian yang dapat digunakan : Fungsi Konversi ke Pengkonversian CBool Boolean CByte Byte CCur Currency CDate Date CDbl Double CInt Integer CLng Long CSng Single CStr String CVar Variant CVErr Error Contoh : Private Sub CmdOK_Click() Dim D Const Cphi = 3,14159265358979 D = TxtDiameter.Text TxtKeliling.Text = CCur(Cphi * D ) TxtLuas.Text = Ccur(1/4 *Cphi * (D) ^ 2) End Sub Tipe Data Buatan Sendiri Pembuatan tipe data buatan sendiri ini menggunakan kombinasi dari tipe data yang telah ada. Pendeklarasiannya menggunakan perintah Type setelah kata Public atau Private. Penggunaan kata Public atau Private tergantung pada ruang lingkup variabel yang diinginkan. Contoh : Public Type DataSiswa Nama As String Alamat As String TglLahir As Date End Type Microsoft Visual Basic 6.0 – by Iman Basuni
Cara untuk memasukkan atau mengambil data dari variabel dengan tipe buatan sendiri sama dengan saat mengisi atau mengambil data dari property obyek. Contoh : DataSiswa.Nama = “Ismalia” DataSiswa.TglLahir = #30 Maret 2002# Variabel Array Array mempunyai fungsi untuk menyimpan data secara berurutan dalam sebuah nama variabel. Dalam array, data tersimpan dengan menggunakan index untuk meudahkan pencarian kembali data tersebut. Array mepunyai batas atas dan batas bawah, di mana data akan tersimpan di antara kedua batas tersebut. Semua elemen data yang tersimpan dalam sebuah variabel array mempunyai tipe data yang sama. Semua tipe data termasuk buatan sendiri dapat dideklarasikan bagi variabel array. Contoh : Dim Contoh (19) As Integer Pada pendeklarasian di atas, untuk menuliskan batas atas elemen array berada dalam tanda kurung. Terlihat bahwa pendeklarasian variabel contoh akan menggunakan 20 elemen dengan indeks dari 0 sampai 19. Visual Basic juga memungkinkan untuk membuat variabel array multi dimensi. Dengan multi dimensi ini, maka dengan indeks yang sama dapat menyimpan beberapa data yang berlainan. Contoh : Dim Contoh (19 , 19) As Integer Pada contoh tersebut akan diciptakan variabel array 2 dimensi sebesar 20 kali 20. STRUKTUR KONTROL Struktur Kontrol ada 2 (dua) jenis yaitu : • Struktur Pengambilan Keputusan • Struktur Pengulangan (looping)
Pengambilan Keputusan If … Then Struktur ini digunakan untuk mengeksekusi satu atau lebih perintah yang menyatakan keadaan. Bisa ditulis dengan dua cara, yaitu : If Kondisi Then Perintah
Microsoft Visual Basic 6.0 – by Iman Basuni
Atau If Kondisi Then Perintah End If Kondisi berisi perbandingan (digunakan tanda <, >, =) dari suatu keadaan yang akan menghasilkan Benar atau Salah. Di samping perbandingan, bisa pula diisi dengan ekspresi yang mengevaluasi sebuah nilai numerik. Jika angka Numerik yang dihasilkan 0 maka kondisinya Salah dan selain 0 kondisinya bernilai Benar. If…Then…Else… Struktur jenis ini mirip dengan struktur If… Then…, hanya saja digunakan untuk banyak blok perintah. Standar Penulisannya adalah : If Kondisi 1 Then [Perintah Blok 1] [ElseIf Kondisi 2 Then [Perintah Blok 1]]…. [Else [Perintah Blok-n]] End If Visual Basic akan menguji pertama kali pada kondisi pertama, jika bernilai salah (False) maka akan terus diuji kodisi-kondisi berikutnya sampai ditemukan suatu kondisi bernilai benar. Jika kondisi ditemukan bernilai benar, maka Visual Basic akan menjalankan perintah blok setelah kata Then, kemudian akan langsung menjalankan rutin setelah kata End If. Select Case Struktur ini digunakan sebagai alternatif pengganti dari struktur kontrol If..Then…Else…., Select Case mempunyai penulisan yang lebih mudah sehingga penulisan rutin dapat menjadi lebih efisien. Struktur ini bekerja dengan sebuah kondisi pengujian yang ditulis pada bagian atas dari struktur kontrol. Hasil pengujian kondisi tersebut hanya akan dievaluasi sekali itu saja. Visual Basic akan membandingkan hasil pengujian tersebut dengan masing-masing nilai ekspresi struktur Case. Jika cocok maka struktur perintah pada blok yang berhubungan dengan struktur case yang mempunyai nilai ekspresi tersebut akan dieksekusi. Standar penulisannya adalah : Select Case TestKondisi [Case ekspresi 1 [perintah blok 1]] [Case ekspresi 2 [perintah blok 2]] . .
Microsoft Visual Basic 6.0 – by Iman Basuni
[Case Else End Select Pengulangan (looping) Do…Loop Struktur ini digunakan untuk mengulang sebuah blok perintah sampai jumlah tertentu. Biasanya untuk menghentikan pengulangan digunakan suatu kondisi tertentu. Nilai kondisi ini, seperti halnya pada struktur kontrol if..then, mempunyai hasil berupa Benar atau Salah. Dalam hal ini, struktur Do…Loop akan meneruskan pengulangan jika kondisi bernilai benar. Standar penulisannya adalah. Do While Kondisi Do Until Kondisi Perintah Perintah Loop Loop Atau
Atau
Do
Do
Perintah Loop While Kondisi
Perintah Loop Until Kondisi
For …. Next Struktur ini paling baik digunakan jika pengulangannya sudah pasti di ketahui jumlahnya. Pada struktur ini, tidak diperlukan menuliskan sebuah kondisi untuk diuji oleh Visual Basic, tetapi hanya perlu menuliskan nilai awal dan akhir variabel penghitung. Nilai Variabel penghitung akan otomatis bertambah atau berkurang setiap kali sebuah pengulangan dilaksanakan. Standar penulisannya adalah : For Variabel = awal To akhir [Step pertambahan] Perintah Next [Variabel] For Each…Next Sebenarnya mirip dengan For…Next, hanya saja struktur kontrol ini digunakan untuk mengulang sekelompok perintah bagi elemen pada suatu koleksi obyek Strukturnini sangat berguna jika pengulangan tidak diketahui pasti jumlah elemen koleksi obyek. Standar penulisannya adalah : For Each elemen In grup Perintah Next elemen Microsoft Visual Basic 6.0 – by Iman Basuni
TUGAS 3.1 : Berikut ini adalah program menggunakan Variabel Tanggal. Buatlah tampilan program awal sebagai berikut :
Kode Program Private Sub Command1_Click() Dim Sekarang, SisaHari, SisaJam, SisaMenit Sekarang = Now SisaHari = Int(DateSerial(Year(Sekarang) + 1, 1, 1) - Sekarang) SisaJam = 24 - Hour(Sekarang) SisaMenit = 60 - Minute(Sekarang) Print Sekarang Print SisaHari & " hari lagi tahun ini berakhir" Print SisaJam & " jam lagi hari ini berakhir" Print SisaMenit & " menit lagi jam ini berakhir" End Sub Private Sub Form_Load() Command1.Caption = "Klik Waktu" Form1.FontSize = 13 Form1.Caption = "Variabel Tanggal" End Sub
Microsoft Visual Basic 6.0 – by Iman Basuni
TUGAS 3.2 : Berikut ini adalah program menggunakan Variabel Type. Buatlah tampilan program awal sebagai berikut :
Kode Program Private Type DataSiswa NIS As String Nama As String TglLahir As Date Alamat As String End Type Dim Data As DataSiswa
Sub DaftarSiswa() Data.NIS = Text1.Text Data.Nama = Text2.Text Data.TglLahir = Text3.Text Data.Alamat = Text4.Text End Sub
Sub TampilData() MsgBox "Informasi Data Siswa " & Chr(10) & _ "NIS : " & Data.NIS & Chr(10) & _ "Nama : " & Data.Nama & Chr(10) & _ "Tanggal Lahir : " & Data.TglLahir & Chr(10) & _ "Alamat : " & Data.Alamat, , "Data Siswa" End Sub Sub HapusData() Text1.Text = "":
Text2.Text = ""
Text3.Text = "": Text4.Text = "" End Sub Microsoft Visual Basic 6.0 – by Iman Basuni
Private Sub Command1_Click() HapusData
Text1.SetFocus End Sub
Private Sub Command2_Click() DaftarSiswa TampilData End Sub
Private Sub Form_Load() Form1.Caption = "Type Variabel" Command1.Caption = "Baru" Command2.Caption = "Tampilkan" Label1.Caption = "N I S" Label2.Caption = "Nama Siswa" Label3.Caption = "Tanggal Lahir" Label4.Caption = "Alamat Rumah" End Sub
TUGAS 3.3 : Berikut ini adalah program menggunakan Variabel Array. Buatlah tampilan program awal sebagai berikut : Kode Program Private Type DataSiswa NIS As String Nama As String TglLahir As String Alamat As String End Type Option Base 1 Dim Indeks As Integer Dim Data() As DataSiswa
Sub DaftarSiswa() Data(Indeks).NIS = Text1.Text Data(Indeks).Nama = Text2.Text Data(Indeks).TglLahir = Text3.Text Data(Indeks).Alamat = Text4.Text Microsoft Visual Basic 6.0 – by Iman Basuni
End Sub Sub TampilData() MsgBox "Data Siswa sudah direkam " & Chr(10) & _ "NIS : " & Data(Indeks).NIS & Chr(10) & _ "Nama : " & Data(Indeks).Nama & Chr(10) & _ "Tanggal Lahir : " & Data(Indeks).TglLahir & Chr(10) & _ "Alamat : " & Data(Indeks).Alamat, , "Data Siswa" End Sub Sub TampilanFormData() Text1.Text = Data(Indeks).NIS Text2.Text = Data(Indeks).Nama Text3.Text = Data(Indeks).TglLahir Text4.Text = Data(Indeks).Alamat End Sub Sub HapusData() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub Private Sub Command1_Click() HapusData Text1.SetFocus End Sub Private Sub Command2_Click() DaftarSiswa TampilData End Sub Private Sub Command3_Click() If Indeks > LBound(Data) Then DaftarSiswa Indeks = Indeks - 1 TampilanFormData Microsoft Visual Basic 6.0 – by Iman Basuni
End If Text5.Text = Indeks End Sub Private Sub Command4_Click() Text5.Text = Indeks If Indeks = UBound(Data) Then ReDim Preserve Data(Indeks + 1) DaftarSiswa Indeks = Indeks + 1 Text5.Text = Indeks TampilanFormData End Sub Private Sub Form_Load() Form1.Caption = "Variabel Array" Command1.Caption = "Baru" Command2.Caption = "Rekam" Command3.Caption = "Sebelum" Command4.Caption = "Sesudah" Frame1.Caption = "Data Ke :" Label1.Caption = "N I S" Label2.Caption = "Nama Siswa" Label3.Caption = "Tanggal Lahir" Label4.Caption = "Alamat Rumah" Indeks = 1 ReDim Data(Indeks) Text5.Text = Indeks Text5.Alignment = vbCenter End Sub
Microsoft Visual Basic 6.0 – by Iman Basuni