Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
MODUL 2 SELECTION & LOOPING PADA FORM TUJUAN : Mahasiswa mampu menguasai dan memahami penggunaan logika selection dan looping di Visual Basic.Net dengan implementasi pada Form dan object. Materi : Selection : If… Then…. End If, If….. Then…. Else…. End If, Select Case….. case…. End Select. Looping : For, For Each, While Referensi : [1] Deitel, 2002, Visual Basic .Net How To Program , Prentice Hall, New Jersey. [2] http://home.hit.no/~hansha/documents/microsoft.net/tutorials/introduction%20to%20visual%20studio/I ntroduction%20to%20Visual%20Studio%20and%20CSharp.pdf [3] http://www.homeandlearn.co.uk/NET/nets3p3.html [4] https://www.vtc.com/products/Visual-Basic-2005-Tutorials.htm#
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 18
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
2.1 Selection (Part 1): If…. Then…. End IF Merupakan logika berkondisi pada blok yang memberikan syarat khusus, fungsinya adalah sebagai pengendali untuk suatu pernyataan code, sehingga memungkinkan programmer untuk menentukan tindakan yang berbeda ketika kondisi benar atau kondisi salah. Contoh Soal :
Apabila terdapat pernyataan jika jenis kelamin adalah Laki-Laki maka bernilai 1 selain itu cewek dan bernilai 0;
Berikut ini penyelesaian secara flowchart : Start
Input Jenis_Kelamin=LakiLaki
Input=Laki-Laki
False
Cetak “0”
True
Cetak “1”
End
Penyelesaian menggunakan code visual basic.net : Dim a As String = "Laki-Laki" If a = "Laki-Laki" Then MsgBox("Cetak 1") Else MsgBox("Cetak 0") End If
Hasil dari code diatas adalah “Cetak 1” Struktur kondisi IF sederhana sebagai berikut (If….Then….End If) : If kondisi Then Pernyataan End If
Struktur kondisi IF dengan dua kondisi (Laki-Laki atau Perempuan) sebagai berikut (IF….Then…Else….End IF): If kondisi Then Pernyataan ke-1 Else Pernyataan ke-2 End If
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 19
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Sebagai Contoh : If Nilai >=65 Then “Anda Lulus” Else “Anda Tidak Lulus” End If
Code diatas memiliki arti, jika nilai lebih besar sama dengan 65 (Kondisi) maka (Then) akan memunculkan pernyataan “Anda Lulus” (pernyataan Ke-1) selain itu “Anda Tidak Lulus” (pernyataan Ke-2). Struktur kondisi IF dengan kondisi lebih dari dua sebagai berikut : If Kondisi 1 Then Pernyataan Ke-1 ElseIf Kondisi 2 Then Pernyataan Ke-2 ElseIf Kondisi 3 Then Pernyataan Ke-3
. . . Else Pernyataan Ke-4 End If
Berikut ini contoh penggunaan kondisi IF lebih dari 2 kondisi didalam aplikasi, aplikasi berikut menunjukkan kategori umur :
Apabila inputan dari textbox kurang dari umur 17 tahun maka termasuk kategori “Anak-Anak”.
Apabila inputan dari textbox antara umur 17 sampai dengan 55 tahun maka termasuk kategori “Dewasa”.
Apabila lebih dari 55 tahun maka termasuk kategori “Orang Tua”.
Tampilan aplikasi adalah sebagai berikut :
Hasilnya ketika saya tekan tombol “Cari Kategori” adalah “Anak-Anak”, code dimasukkan kedalam tombol “Cari Kategori” diatas adalah sebagai berikut :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 20
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Public Class PencarianKategori Private Sub Cari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cari.Click If CInt(Umur.Text) <= 16 Then MsgBox("Anak-Anak") ElseIf CInt(Umur.Text) >= 17 And CInt(Umur.Text) <= 55 Then MsgBox("Dewasa") ElseIf CInt(Umur.Text) > 55 Then MsgBox("Orang Tua") End If End Sub End Class
2.2 Selection (Part 2): Select Case…. End Select Selain menggunakan Statement IF anda dapat juga menggunakan Select…. Case, perbedaan Statement IF dan Select
Case
adalah
Jika
dalam
perintah
IF
pengecekan
dilakukan
berdasarkan
kondisi,
namun dalam select case pengecekan dilakukan berdasarkan nilai ekspresi. Berikut ini sintak dari Select Case : Select Case Variabel Case ekspresi 1 Statement1 ... Case ekspresi 2 Statement2 ... Case Else ... End Select Berikut ini contoh penggunaan Select Case, soal masih tentang kategori umur, berikut tampilan aplikasi :
Ketika di tekan tombol “Cari Kategori”, maka hasilnya adalah memunculkan pesan(MessageBox atau msgbox) dengan kata-kata “Dewasa”, dibawah ini adalah source code didalam tombol/button cari kategori.
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 21
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Public Class Form2 Private Sub Cari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cari.Click 'blok yang digunakan untuk statement/coding didalam button Dim kategori As Integer = 0 kategori = CInt(Umur.Text) Select Case kategori Case Is <= 16 MsgBox("Anak-Anak") Case 17 To 55 'to digunakan untuk umur 17 sampai dengan 55 MsgBox("Dewasa") Case Is > 55 MsgBox("Orang Tua") End Select End Sub End Class
Secara default, output dari textbox(TextBox Umur) adalah bertipe data String, sehingga perlu untuk dikonversi ke dalam tipe data Integer(kategori = CInt(Umur.Text)), setelah itu masukkan variable Kategori pada select case dan berilah kondisi pada Case IS. Jika masukan dari textbox berumur kurang dari 17 tahun maka cetak Anak-Anak dan jika masukan dari textbox berumur antara 17 sampai 55 tahun maka Dewasa dan selain itu maka Orang Tua.
2.3 Looping (Part 1): For…. Next Sintak ini digunakan untuk proses perulangan, dengan jumlah perulangan sudah ditentukan sehingga ada batas awal dan batas akhir dari proses perulangan. Berikut ini struktur sintak For….. Next : For i As Integer = BatasAwal To BatasAkhir Statement Next
... ... ... ... ...
Dengan (i) adalah variable bertipe Integer atau anda dapat juga menuliskan seperti berikut ini : Dim j As Integer = 1 For j = 1 To 5 Statement Next
... ... ... ... ...
Artinya bahwa anda akan menampilkan data dari angka 1 ke 5. For j As Integer = 1 To 5 Step Statement Next
... ... ... ... ...
Catatan : Jika Step tidak ditulis maka secara default step akan bernilai 1, atau anda bisa memberikan suatu nilai ke dalam Step, seperti contoh dibawah ini :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 22
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
For j As double = 1 To 5 Step 0.1 Statement Next
... ... ... ... ...
Hasilnya adalah 1, 1.1, 1.2……2,2.1,2.2…..3,3.1,3.2……4,4.1,4.2….4.9,5 For j As Integer = 5 To 1 Step -1 Next
... ... ... ... ...
Hasilnya adalah 5,4,3,2,1
2.4 Looping (Part 2): While…. End While While....loop statement, yaitu untuk perulangan dimana kita tidak tahu berapa jumlah proses perulangan yang akan dilakukan, dan statement akan dijalankan jika kondisi yang akan dicek bernilai benar jika tidak maka keluar dari looping. Berikut ini struktur sintak dari While....loop statement : While kondisi Statement
... ... ... ... ...
End While
Berikut ini contoh penggunaan while : Dim i As Integer = 1 While i < 5 i += 1 MsgBox(i) End While
Hasil dari source code diatas adalah 2, 3, 4, 5. Untuk sintak while pemeriksaan kondisi dilakukan di awal sebelum statement dijalankan. Dalam sintax tersebut, statements akan dijalankan selama kondisi benar jika kondisi salah maka akan keluar dari looping.
2.5 Looping (Part 3): For Each….. Next Digunakan untuk melakukan iterasi perulangan pada object tertentu, misalnya jika kita ingin mencetak seluruh isi dari sebuah array atau jika kita ingin menghapus seluruh text pada textbox yang ada dalam form kita. Berikut ini adalah tampilan aplikasi sebelum dibersihkan menggunakan sintak for each :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 23
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Dengan menekan tombol/button bersih maka tampilannya adalah sebagai berikut :
Sintak yang digunakan untuk membersihkan isi dari textbox adalah menggunakan for each, sebagai berikut : Dim ctr As Control For Each ctr In Me.Controls If TypeOf (ctr) Is TextBox Then ctr.Text = "" End If Next
Masukkan sintak diatas didalam button bersih.
2.6 Kombinasi Looping dan Selection Anda dapat melakukan kombinasi looping dan selection dalam satu perintah/statement, berikut ini adalah tampilan dari aplikasi pembagian otomatis dari bilangan ganjil atau genap berdasarkan jumlah banyaknya iterasi.
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 24
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Keterangan gambar : Properties textbox berisi name=jml Properties button berisi Text=Eksekusi Properties Label berisi Text = Jumlah Iterasi Properties Groupbox (Angka Ganjil & Angka Genap) tuliskan pada Text. Gunakan Object ListBox. Tampilan ketika aplikasi dijalankan :
Masukkan sintak berikut ini di dalam Button Eksekusi : For i As Integer = 1 To CInt(jml.Text) If i Mod 2 = 0 Then ListBox2.Items.Add(i) Else ListBox1.Items.Add(i) End If Next
Sehingga output yang dihasilkan pada aplikasi diatas adalah sebagai berikut :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 25
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Dengan memasukkan jumlah iterasi atau inputan adalah 10 (1,2,3,4,5,6,7,8,9,10) maka aplikasi akan secara otomatis melakukan perulangan sebanyak iterasi (10 kali) dan didalamnya terdapat kondisi jika nilai angka perulangan 1 maka akan dimasukkan ke dalam kotak angka ganjil, ketika angka perulangan 2 maka akan dimasukkan ke dalam kotak genap, dan seterusnya sampai jumlah iterasi terpenuhi.
Latihan 1. Pada latihan modul ke 2 ini, anda akan membuat aplikasi perhitungan jumlah gaji total dengan kombinasi tunjangan berdasarkan golongan dan jumlah gaji pokok. Buatlah tampilan sebagai berikut ini :
1
9
2 6
3 4
7
5
8
Keterangan gambar berdasarkan nomer : 1. Object TextBox dengan Setting Properties => Name = Kode; TabIndex = 0; CharacterChasing = Upper; 2. Object TextBox dengan Setting Properties => Name = nama; TabIndex = 1; CharacterChasing = Upper; 3. Object TextBox dengan Setting Properties => Name = gapok; TabIndex = 2;
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 26
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
4. Object Combobox dengan Setting Properties => Name = ComboGol; TabIndex = 3; DropDownStyle=DropDownList; Items masukkan data (Golongan I, Golongan II, Golongan III, Golongan IV), sehingga tampilan Items seperti gambar dibawah ini;
5. 6. 7. 8.
Object TextBox dengan Setting Properties => Name = gol; TabIndex = 4; ReadOnly = True; Object Button dengan Setting Properties => Name = Tambah; TabIndex = 5; Text = “Tambah Data”; Object Button dengan Setting Properties => Name = hitung; TabIndex = 6; Text = “Hitung Gaji”; Object ListView dengan Setting Properties => Name = LvKaryawan; TabIndex = 7; GridLines = True; View = Details; Klik Columns dan setting seperti langkah-langkah dibawah ini : a. Klik pada tanda tombol, seperti gambar panah berikut,
b. Setelah itu akan muncul kotak dialog, seperti berikut ini :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 27
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
c. Tekan tombol Add sebanyak 5x untuk membuat kolom, kemudian setting Columns Header Properties, seperti berikut ini : - Column Header 1 : DisplayIndex = 0; Text = Kode Karyawan; Width = 120; - Column Header 2 : DisplayIndex = 1; Text = Nama Karyawan; Width = 200; - Column Header 3 : DisplayIndex = 2; Text = Jumlah Gapok; Width = 100; - Column Header 4 : DisplayIndex = 3; Text = Gol. ; Width = 100; - Column Header 5 : DisplayIndex = 4; Text = Tunjangan; Width = 110; Setelah selesai Tekan Tombol OK 9. Blank Area 2. Setelah desain dan setting properties sudah selesai maka langkah berikutnya adalah double klik pada blank area (Nomer 9), sehingga anda akan masuk kedalam code area.
a
b
Masukkan sintak = kode.Focus() pada form load. Poin a berisi tentang semua object yang anda gunakan pada form desain selumnya Poin b berisi tentang events atau perlakuan terhadap tiap-tiap object.
3. Silahkan kembali kepada desain form, kemudian double klik pada object ComboBox(ComboGol), masukkan sintak berikut ini didalam diantara events combobox tersebut. If ComboGol.Text = "Golongan I" Then gol.Text = "100000" ElseIf ComboGol.Text = "Golongan II" Then gol.Text = "125000" ElseIf ComboGol.Text = "Golongan III" Then gol.Text = "150000" ElseIf ComboGol.Text = "Golongan IV" Then gol.Text = "175000" End If
Sehingga tampilannya akan seperti berikut ini,
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 28
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
4. Jangan lupa untuk save project, setelah selesai silahkan kembali ke desain form dan double klik pada Object Button Tambah, kemudian masukkan sintak berikut kedalam Button Tambah. Private Sub Tambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tambah.Click 'masukkan sintak dibawah ini : LvKaryawan.Items.Add(kode.Text) LvKaryawan.Items(LvKaryawan.Items.Count - 1).SubItems.Add(nama.Text) LvKaryawan.Items(LvKaryawan.Items.Count - 1).SubItems.Add(gapok.Text) LvKaryawan.Items(LvKaryawan.Items.Count - 1).SubItems.Add(ComboGol.Text) LvKaryawan.Items(LvKaryawan.Items.Count - 1).SubItems.Add(gol.Text) End Sub
Sintak diatas digunakan untuk memasukkan/memindahkan data dari object-object Textbox dan combobox pada inputan ke dalam Object Listview. Sintak LvKaryawan.Items.Add(kode.Text)digunakan untuk memasukkan data ke Listview pada kolom ke 0 atau kolom kode. Sintak LvKaryawan.Items(LvKaryawan.Items.Count 1).SubItems.Add(nama.Text) digunakan untuk memasukkan data ke Listview pada kolom ke 1 atau kolom Nama Karyawan, hal yang sama untuk kolom-kolom selanjutnya. Object listview sama seperti Array (dimulai dari index ke 0,1,2,…… dst) maka sintak LvKaryawan.Items.Count – 1 digunakan untuk menghitung jumlah baris data pada listview, secara umum sintak untuk memasukkan data pada listview adalah LvKaryawan.Items.Add => kolom ke 0 LvKaryawan.Items(baris LvKaryawan.Items(baris LvKaryawan.Items(baris LvKaryawan.Items(baris
ke ke ke ke
1).SubItems.Add 1).SubItems.Add 1).SubItems.Add 1).SubItems.Add
=> => => =>
untuk untuk untuk untuk
kolom kolom kolom kolom
1 2 3 4
Supaya baris menghitung otomatis maka diperlukan sintak LvKaryawan.Items.Count – 1 5. Output aplikasi adalah sebagai berikut :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 29
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
6. Buatlah desain form 2 dengan nama form adalah formHitung, tampilannya seperti berikut ini
Object yang digunakan adalah listview yang sama dengan yang ada di Form pertama (Copy dari Form pertama kemudian paste kan di Form ke 2), tetapi di Form ke 2 anda tambahkan satu kolom di terakhir (Total Gaji) dan juga tambahkan textbox untuk total gaji keseluruhan. 7. Apabila selesai melakukan desain form 2, maka silahkan kembali ke desain form 1. 8. Double klik pada object button hitung, dan masukkan sintak berikut ini : Dim total As Integer Private Sub hitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hitung.Click total = 0 formHitung.ListView1.Items.Clear() For i As Integer = 0 To LvKaryawan.Items.Count - 1 formHitung.ListView1.Items.Add(LvKaryawan.Items(i).Text) formHitung.ListView1.Items(i).SubItems.Add(LvKaryawan.Items(i).SubItems(1).Text) formHitung.ListView1.Items(i).SubItems.Add(LvKaryawan.Items(i).SubItems(2).Text) formHitung.ListView1.Items(i).SubItems.Add(LvKaryawan.Items(i).SubItems(3).Text) formHitung.ListView1.Items(i).SubItems.Add(LvKaryawan.Items(i).SubItems(4).Text) ''''''''sintak berikut ini digunakan untuk penjumlahan antara gaji pokok dengan tunjangan, dan hasilnya dimasukkan ke dalam item ke 6 FormHitung.ListView1.Items(i).SubItems.Add(CInt(LvKaryawan.Items(i).SubItems(4).Text) + CInt(LvKaryawan.Items(i).SubItems(2).Text)) Next ''''''''sintak berikut ini digunakan untuk menghitung total gaji keseluruhan dari kolom total gaji For i As Integer = 0 To formHitung.ListView1.Items.Count - 1 total += CInt(formHitung.ListView1.Items(i).SubItems(5).Text) Next formHitung.total.Text = total formHitung.ShowDialog() End Sub
Inisialisasikan terlebih dahulu total dengan tipe data Integer di luar event hitung_click Arti dari sintak diatas adalah memindahkan data dari object LvKaryawan di Form 1 ke Object Listview1 di Form 2, serta melakukan perhitungan total gaji tiap karyawan yang anda masukkan. Sintak for digunakan untuk menghitung jumlah baris data yang diinputkan pada LvKaryawan, sehingga dapat dipindahkan. formHitung adalah nama dari Form ke 2, apabila anda akan memasukkan data dari Form 1 ke Form 2 maka anda diharuskan memanggil Form yang akan anda panggil kemudian diikuti object yang akan dipanggil, sehingga sintak formHitung.ListView1 berfungsi sebagai memanggil formHitung dan memasukkan data ke Object Listview1. Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 30
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
9. Tampilan output aplikasi ketika anda menekan tombol/button Tambah Data untuk form ke 1 adalah sebagai berikut :
10. Tampilan output aplikasi ketika anda menekan tombol/button Hitung Gaji untuk form ke 2 adalah sebagai berikut :
Secara keseluruhan tampilan aplikasi adalah :
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 31
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
PEKERJAAN RUMAH (PR) & CATATAN
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 32
Modul Pemrograman Desktop
Created by : Team Dosen P.Desktop
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN “Veteran” JAWA TIMUR
Halaman 33