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. Jenis Ukuran Memori Karakter Jangkauan 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 Single 4 byte! Negatif -3,402823E38 s.d 1,401298E-45 Positif 1,401298E-45 s.d 3,402823E38 Double 8 byte # Negatif -1,79769373486232E308 s.d -4,94065645841247E-324 Positif 4,94065645841247E-324 s.d 1,79769373486232E308 Currency 8 byte @ -922.337.203.685.477,5808 s.d 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
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. Jenis String (variabel) String (Fixed) Ukuran Memori 10 byte + panjang string Panjang string Jangkauan 0 s.d mendekati 2 milyar (atau sekitar 64K karakter untuk Windows versi sebelumnya) 1 s.d mendekati 2 milyar (atau sekitar 64K karakter untuk Windows versi sebelumnya) 3. Tipe data Variant Tipe data ini merupakan kombinasi dari tipe data Numerik dengan String. Jenis Ukuran Memori Jangkauan Date 8 byte 1 January 100 s.d 31 December 9999 Variant Sembarang nilai Numerik dalam tipe 16 byte (dengan jangkauan) Double Variant (dengan string) 22 byte + panjang string Sama dengan Jangkauan 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.
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 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. 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. 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. STATIC X As Integer STATIC Y STATIC KODE As Integer
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 Pengkonversian Konversi ke CBool Boolean CByte Byte CCur Currency CDate Date CDbl Double CInt Integer CLng Long CSng Single CStr String CVar Variant CVErr Error 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) 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. Public Type DataSiswa Nama As String Alamat As String TglLahir As Date End Type
Cara untuk memasukkan atau mengambil data dari variabel dengan tipe buatan sendiri sama dengan saat mengisi atau mengambil data dari property obyek. 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. 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. 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
Atau If Kondisi Then 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 [ Blok 1] [ElseIf Kondisi 2 Then [ Blok 1]]. [Else [ 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]]..
[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 Loop Do Until Kondisi Loop Atau Do Loop While Kondisi Atau Do 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] 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 Next elemen
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" Private Sub Form_Load() Command1.Caption = "Klik Waktu" Form1.FontSize = 13 Form1.Caption = "Variabel Tanggal"
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 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" Sub HapusData() Text1.Text = "": Text2.Text = "" Text3.Text = "": Text4.Text = ""
Private Sub Command1_Click() HapusData Private Sub Command2_Click() DaftarSiswa TampilData Text1.SetFocus 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" 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
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" Sub TampilanFormData() Text1.Text = Data(Indeks).NIS Text2.Text = Data(Indeks).Nama Text3.Text = Data(Indeks).TglLahir Text4.Text = Data(Indeks).Alamat Sub HapusData() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Private Sub Command1_Click() HapusData Text1.SetFocus Private Sub Command2_Click() DaftarSiswa TampilData Private Sub Command3_Click() If Indeks > LBound(Data) Then DaftarSiswa Indeks = Indeks - 1 TampilanFormData
End If Text5.Text = Indeks 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 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