Pages

Showing posts with label Visual Basic 2008. Show all posts
Showing posts with label Visual Basic 2008. Show all posts

Sunday, January 23, 2011

Menentukan Nama Hari Menggunakan DateTimePicker

Jika Anda menggunakan DateTimePicker dan ingin mengetahui apakah pada tanggal tertentu merupakan hari tertentu (misalnya hari Minggu), kita dapat menggunakan DayOfWeek. Berikut ini adalah sepenggal syntax-nya:

If DateTimePicker1.Value.DayOfWeek = 0 Then
   MessageBox.Show("Hari ini adalah hari Minggu.")
Else
   MessageBox.Show("Hari ini bukan hari Minggu tetapi hari " + DateTimePicker1.Value.DayOfWeek.ToString)
End If


Keterangan:
DayOfWeek menggunakan angka integer untuk menentukan nama hari dimulai dari 0 yang menunjukkan hari Minggu sampai dengan 6 untuk hari Sabtu.

Tuesday, January 4, 2011

Pembulatan Angka pada VB Net

Jika Anda ingin membulatkan hasil dari perhitungan menjadi berapa desimal di belakang koma gunakan fungsi Round pada VB Net.

Imports System.Math
Dim Hasil as Decimal = Round(nilai, digit)

Keterangan:
Pertama kali Anda harus mengimpor komponen yang diperlukan agar fungsi Round dapat berjalan, yaitu System.Math
Nilai berisi angka yang ingin dilakukan pembulatan sedangkan Digit berisi berapa digit angka di belakang koma yang diinginkan.

Membaca Data pada Record Terakhir dari Database

Seringkali banyak yang menanyakan bagaimana caranya jika ingin membaca data pada record terakhir dari database. Saya menemukan salah satu solusinya jika Anda menggunakan perintah ExecuteReader untuk membaca data pada database.
Berikut ini adalah sepenggal syntax-nya:

dr = cmd.ExecuteReader
Do while dr.read
   Dim nama as string = dr!Nama
   Dim alamat as string = dr!Alamat
Loop
TxtNama.Text = nama
TxtAlamat.Text = alamat
dr.Close()

Penjelasan:
Program akan membaca data nama dan alamat pada record yang telah ditemukan sesuai dengan perintah SQL. Data nama dan alamat akan dideklarasikan ke dalam variabel nama dan alamat. Pada akhir dari proses looping variabel nama dan alamat hanya akan berisi data nama dan alamat yang terdapat pada record terakhir dari database dengan asumsi bahwa semua record sudah tersusun secara ascending.

Perintah SQL TOP
Cara lain untuk menuju ke record terakhir adalah menggunakan perintal SQL TOP.
Berikut ini contoh syntax perintah SQL:

SELECT TOP 1 * FROM STOK WHERE KODE_BARANG = '001' ORDER BY TANGGAL DESC

Penjelasan:
Query akan menampilkan semua field dari 1 record paling atas pada tabel Stok yang memiliki Kode_Barang '001' dimana record tersusun secara descending berdasarkan Tanggal sehingga record terakhir berada pada urutan atas.

Thursday, December 16, 2010

Connection String for SQL Server 2008

.NET Framework Data Provider for SQL Server
Type:    .NET Framework Class Library
Usage:  System.Data.SqlClient.SqlConnection

#Standard Security

Data Source=myServerAddress;Initial Catalog=myDataBase;UserId=myUsername;Password=myPassword;

Use serverName\instanceName as Data Source to connect to a specific SQL Server instance. Are you using SQL Server 2008 Express? Don't miss the server name syntax Servername\SQLEXPRESS where you substitute Servername with the name of the computer where the SQL Server Express installation resides.

#Connect via an IP address

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

DBMSSOCN=TCP/IP. This is how to use TCP/IP instead of Named Pipes. At the end of the Data Source is the port to use. 1433 is the default port for SQL Server.

Sumber: http://www.connectionstrings.com

Friday, December 3, 2010

Membandingkan Selisih Nilai pada DataGridView

Ilustrasi Tabel Nilai


Ilustrasi Tabel Hasil

Diilustrasikan terdapat sebuah tabel yang akan kita hitung selisih perbandingan dari masing-masing entitas berdasarkan masing-masing kriteria penilaian, yaitu Tabel Nilai. Tabel Nilai berisi skor penilaian masing-masing karyawan terhadap masing-masing kriteria penilaian, yaitu IQ, EQ, dan Penampilan sedangkan Tabel Hasil menampilkan hasil perhitungan selisih skor berdasarkan salah satu kriteria yang telah dipilih (terlihat kriteria yang dipilih pada gambar adalah IQ) dengan membandingkan dari setiap karyawan dimana tabel-tabel tersebut ditampilkan dalam bentuk DataGridView. Jadi, ada DataGridView untuk menampilkan Tabel Nilai (sebut saja DGVNilai) dan ada DataGridView untuk menampilkan Tabel Hasil (sebut saja DGVHasil).

Ilustrasi perhitungan dari Tabel Hasil sebagai berikut:
Skor penilaian dari Pegawai-1 akan dibandingkan dengan skor nilai dari masing-masing pegawai yang lain, yaitu dimulai dari Pegawai-1, Pegawai-2, Pegawai-3, Pegawai-4, dan terakhir Pegawai-5. Skor nilai dari Pegawai-1 untuk IQ adalah 2 kemudian dari skor tersebut akan kita kurangkan dengan skor nilai dari masing-masing pegawai lain. Untuk membandingkan dengan skor nilai Pegawai-1 dengan Pegawai-2 kita mengurangkan 2-5 = -3, lanjut ke Pegawai-3 dengan 2-4 = -2, dan seterusnya.

Berikut ini adalah syntax programnya:
'---
Dim H, N, col As Integer

'col adalah index kolom pada Tabel Nilai
col = ComboBox1.SelectedIndex + 1
   For T As Integer = 1 To DGVHasil.Columns.Count - 1
      N = DGVNilai.Rows(T - 1).Cells(col).Value
         For W As Integer = 0 To DGVNilai.Rows.Count - 1
            H = N - DGVNilai.Rows(W).Cells(col).Value
            DGVHasil.Rows(W).Cells(T).Value = H
         Next 'Baris berikutnya pada DGVNilai
   Next 'Kolom berikutnya pada DGVHasil
'---

Tampilan Aplikasi

Friday, July 23, 2010

Memberi Warna Baris Pada DataGridView

Coding berikut ini untuk memberi warna background baris pada DataGridView berdasarkan nilai atau teks tertentu yang terdapat pada cell.

For Each row As DataGridViewRow In DataGridView1.Rows
  If Not row.IsNewRow Then
    If Not row.Cells(1).Value Is DBNull.Value Then
      If row.Cells(1).Value = "Yes" Then
        row.DefaultCellStyle.BackColor = Color.Red
      End If
    End If
  End If
Next

Tuesday, July 13, 2010

Manghapus dan Menambah Item Pada ListView

Contoh coding untuk menambah item:
' Adds a new item with ImageIndex 3
ListView1.Items.Add("List item text", 3)


Contoh coding untuk menghapus item:
' Removes the first item in the list
ListView1.Items.RemoveAt(0)
' Clears all items:
ListView1.Items.Clear()

Saturday, July 10, 2010

Conversion From Type 'DBNull' to Type 'String' is Not Valid

Suatu saat kita tentu pernah berhadapan dengan pesan exception seperti pada gambar berikut:


Pesan tersebut muncul ketika kita akan menampilkan data dimana baris record tersebut pada salah satu field-nya berisi nilai 'null' alias tidak terdapat data. Agar pesan exception tersebut tidak muncul lagi pastikan bahwa semua field berisi data dan tidak ada yang kosong alias 'null'. Cara lainnya adalah dengan menggunakan IsDBNull. Contoh pemakaian perintah IsDBNull seperti pada syntax di bawah ini:

cn.Open()
comm.Connection = cn
comm.CommandType = CommandType.Text
comm.CommandText = "select * from test where kolom1 = '888'"
dr = comm.ExecuteReader
    If dr.Read Then
         If IsDBNull(dr!kolom2) Then
             TextBox1.Text = ""
         Else
             TextBox1.Text = dr!kolom2
         End If
     End If

Pada syntax di atas jika terdapat nilai 'null' pada kolom2, maka pada TextBox1 akan tampil kosong dan sebaliknya, jika terdapat data akan menampilkan isi dari field kolom2.

Friday, July 9, 2010

Kapan Menggunakan ExecuteReader, ExecuteNonQuery, ExecuteScalar

SqlClient namespace in ADO.NET provides 3 basic methods to run queries with SqlCommand against MSSQL:

    * ExecuteReader
    * ExecuteNonQuery
    * ExecuteScalar

.NET Framework is around for 5 years already now, but these 3 methods are among the most misused in application development. The problem is that ExecuteReader will work for every query via SqlCommand, so most people use it everywhere. The direct result - slow and non-scalable solution. Other results include database bottlenecks, locks and connection leaks.


ExecuteReader

Do not use: when database query is going to provide for sure exactly 1 record. It may be getting record by its id (which is PK in the database) - GetOrderById and such. In this case use ExecuteNonQuery with output parameters.

Use: when database query is going to provide a set of records. It may be search or report.

ExecuteNonQuery

Use: when we are talking about a single database record - in Update, Insert, Delete and Get by Id. In all these cases we can use input/output/input-output parameters. Please note that from the application architecture point of view it is also good practices when your Insert and Update stored procedure returns changed record exactly like Get By Id method does.

ExecuteScalar

Do not use: when database query returns a single value and this value can be defined as parameter in T-SQL. ExecuteNonQuery with output parameter(s) is always preferred in this case since it is more flexible, tomorrow there will be 2 values therefore having ExecuteNonQuery we do not need to change method signatures.

Use: when database query returns a single value and this value cannot be defined as output parameter, because of T-SQL type limitation for variables. For example type image cannot be output parameter in MSSQL.

The most common example for ExecuteScalar is fetching a single image stored in the database and converting it to array of bytes. If you google it - most examples will demonstrate using of ExecuteReader to accomplish image handler, however ExecuteScalar will be more scalable and faster.

Conclusion

Always use ExecuteNonQuery except: when you have a set of records - use ExecuteReader and when you have a single output value that cannot be defined as a parameter - use ExecuteScalar.

Saturday, July 3, 2010

Try … Catch Pada VB .NET

VB.NET memiliki kelas inbuilt yang berhubungan dengan errors. Kelas ini disebut Exception. Ketika error exception ditemukan, objek Exception dibuat. Struktur coding pada VB.NET untuk menangani error dengan Exception tersebut disebut struktur Try ... Catch.

Try


Catch ex As Exception


Finally


End Try


Kata Try berarti "Coba jalankan code ini". Kata Catch berarti "Tangkap semua error di sini". Sedangkan variabel ex, dan tipe variabel itu adalah sebuah objek Exception. Ketika program Anda dijalankan, VB akan mencoba mengeksekusi semua code pada bagian Try. Jika program berjalan dengan baik, bagian Catch akan dilewatkan. Sebaliknya, jika terjadi sebuah error, VB.NET akan menuju langsung ke Catch. Tambahkan baris berikut ke bagian Catch:

MsgBox(ex.Message)

Jika program dijalankan dan terjadi error, maka pesan error tersebut akan muncul sebagai message box dan tidak berupa pesan error seperti berikut:


Bagian Finally akan selalu dijalankan, walaupun terjadi error atau tidak. Biasanya bagian Finally berisi coding untuk membersihkan layar atau menutup koneksi/file yang telah terbuka.

Thursday, July 1, 2010

Membuat Grafik Pada Visual Basic 2008

Untuk membuat grafik pada VB NET bisa melalui laporan (report) atau melalui form. Saya akan mengajarkan menampilkan grafik pada form VB .NET menggunakan komponen Microsoft Chart Control 6.0 (SP4) (OLEDB).

Langkah-langkah membuat grafik pada form sebagai berikut:
1. Buka sebuah project lalu tambahkan sebuah form baru.
2. Pada menu Tools pilih Choose Toolbox Items.


3. Pada window Choose Toolbox Items masuk ke tab COM Components lalu centang Microsoft Chart Control 6.0 (SP4) (OLEDB), klik OK.


4. Pada Toolbox sudah terdapat komponen Microsoft Chart Control 6.0 (SP4) (OLEDB), pillih, lalu tambahkan pada form Anda.


5. Sekarang form Anda telah terdapat komponen tampilan grafik dan langkah selanjutnya adalah membuat coding untuk menampilkan grafik tersebut.

Beberapa atribut dasar yang terdapat pada AxMSChart:
.chartType untuk menentukan tipe/jenis tampilan grafik
.ColumnCount untuk menentukan jumlah grafik atau perbandingan tampilan grafik
.RowCount untuk menentukan berapa banyak baris data angka/nilai yang akan ditampilkan pada grafik
.ColumnLabel untuk menampilkan label pada kolom grafik
.RowLabel untuk menampilan label pada baris angka/nilai grafik
.Data untuk menentukan nilai dari data grafik baik untuk kolom maupun baris
.Row untuk menentukan baris
.Column untuk menentukan kolom

Berikut ini adalah contoh coding untuk menampilkan grafik:

Dim T As Integer

'Tentukan jenis tampilan grafik
AxMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar
AxMSChart1.RowCount = 5 'Menentukan jumlah baris adalah 5
AxMSChart1.ColumnCount = 2 'Menentukan jumlah grafik adalah 2

'Perulangan
For T = 1 To AxMSChart1.RowCount 'Here it is dynamically and will work in all cases of values for AxMSChart1.Row

'Set that we want to edit the row "T"
AxMSChart1.Row = T

'Setting it's label to T
AxMSChart1.RowLabel = T

'Memanipulasi grafik 1
AxMSChart1.Column = 1 'Set that I want to edit the first graph
AxMSChart1.Data = T * 20

'Memanipulasi grafik 2
AxMSChart1.Column = 2 'Set that I want to edit the second graph
AxMSChart1.Data = T * 15
Next

Jika Anda ingin membuat grafik perbandingan antara satu grafik dengan grafik yang lain buatlah jumlah kolomnya (column) lebih dari 1 sesuaikan dengan jumlah perbandingan grafik. Jangan pusing @_@ dengan istilah kolom (column) dan baris (row) pada grafik. Kalian bisa lihat pada tampilan form Grafik Penjualan di bawah ini. Baris (row) ditunjukkan dengan angka 1 s.d. 5 pada sumbu X sedangkan kolom terlihat pada banyaknya grafik di salah satu baris (misalnya baris 1 terdapat dua grafik yaitu grafik hijau dan grafik merah berarti ada 2 kolom).

Tampilan grafik dari coding di atas:

Wednesday, June 30, 2010

Menghitung Jumlah Total Nominal Pada DataGridView

Fungsi berikut untuk menghitung Total_Belanja pada DataGridView:

Private Sub Hitung()
   Dim totalbelanja As Long
   totalbelanja = 0
   For t As Integer = 0 To DataGridView1.Rows.Count - 1
      totalbelanja = totalbelanja + Val(DataGridView1.Rows(t).Cells(index).Value)
   Next
   Label1.Text = totalbelanja
End Sub

Mengubah Ukuran Kertas dan Orientasi Laporan Pada Crystal Report

Seringkali kita ingin mendesain laporan dengan orientasi landscape atau ukuran kertas tertentu. Berikut ini adalah langkah-langkahnya. Pada jendela Visual Basic 2008 pilih menu Crystal Reports kemudian pilih Design lalu Printer Setup. Pada kotak dialog Print Setup pilih Orientation lalu ubah menjadi Portrait/Landscape kemudian OK. Pada kotak dialog Print Setup pilih Paper kemudian ubah ukuran kertas lalu OK.

Window Visual Basic 2008

Kotak Dialog Print Setup

Tuesday, June 29, 2010

Navigasi Record Pada VB 2008

Navigasi record adalah berpindah antara record satu ke record yang lainnya (bisa next, previous, first, last). Kunci utama dari syntax navigasi record terletak pada row index. Misalkan kita membuat sebuah subroutine dengan nama NavigasiRecord() seperti di bawah ini:

Private Sub NavigasiRecord()
     txtFirstName.Text = ds.Tables("AddressBook").Rows(inc).Item(1)
     txtSurname.Text = ds.Tables("AddressBook").Rows(inc).Item(2)
End Sub

Syntax untuk navigasi menuju record selanjutnya adalah:

If inc <> MaxRows - 1 Then
     inc = inc + 1
     NavigasiRecord()
Else
     MsgBox("Tidak ada record.")
End If

Syntax untuk navigasi record sebelumnya adalah:


If inc > 0 Then
     inc = inc - 1
     NavigasiRecord()
ElseIf inc = -1 Then
     MsgBox("Tidak ada records.")
ElseIf inc = 0 Then
     MsgBox("Record pertama.")
End If


Syntax untuk navigasi record menuju record terakhir adalah:

If inc <> MaxRows - 1 Then
     inc = MaxRows - 1
     NavigasiRecord()
End If

Syntax untuk navigasi menuju record pertama adalah:

If inc <> 0 Then
     inc = 0
     NavigasiRecord()
End If

Friday, June 25, 2010

Koneksi Visual Basic.Net ke MySQL

Untuk membuat kolaborasi antara VB.net dan MySQL diperlukan MySQL Connector (for .net tentunya) bisa di-download di MySQL Connector for .Net, dan jika sudah di-download silakan di-install.

Berikut adalah cara untuk menghubungkan antara VB.Net dengan MySQL:
1. Pilih menu Project lalu Add Reference kemudian cari MySql.Data lalu klik OK.


2. Pada bagian teratas dari halaman code form atau module ketikkan baris berikut: Imports MySql.Data.MySqlClient
Sekarang project VB.Net Anda telah terkoneksi dengan MySQL dan Anda dapat menggunakan code pemrograman seperti biasa untuk melakukan manipulasi pada database.

Thursday, June 24, 2010

Menambah Hari Pada Tipe Data Tanggal

Jika kita ingin mengetahui selisih hari di antara dua tanggal menggunakan DateDiff, sedangkan untuk menambah hari pada tanggal misalnya untuk mengetahui tanggal jatuh tempo pembayaran setelah 30 hari dari tanggal penjualan, gunakan fungsi DateAdd seperti format berikut:

DateAdd(DateInterval.Day, IntervalHari, TanggalAwal)

Penggunaan DateAdd hanya berfungsi jika menggunakan DateTimePicker saja. Tanpa DateTimePicker fungsi ini tidak dapat berjalan. Lalu bagaimana jika kita tidak menggunakan DateTimePicker? Selain menggunakan fungsi DateAdd kita dapat juga menggunakan DateTime.AddDays(Interval_Hari As Double), seperti pada contoh syntax berikut:

Dim awal, akhir As System.DateTime
Label1.Text = Now.Date
awal = Label1.Text
akhir = awal.AddDays(30)
Label2.Text = akhir


Syntax di atas akan menambah sebanyak 30 hari dari tanggal yang terdapat pada Label1 (berisi tanggal sistem pada hari ini). Perintah DateTime.AddDays dapat berjalan pada semua control baik label, textbox, atau datetimepicker.

Menghitung Jumlah Total Nominal Pada ListBox

Fungsi berikut untuk menghitung Total_Belanja pada ListBox:

Private Sub Hitung()
   Dim totalbelanja As Long
   totalbelanja = 0
   For t As Integer = 0 To ListBox1.Items.Count - 1
      totalbelanja = totalbelanja + Val(ListBox1.Items.Item(t))
   Next
   Label1.Text = totalbelanja
End Sub

Menghitung Selisih Hari Pada Tipe Data Tanggal

Bagaimana caranya jika kita ingin menghitung selisih hari (lamanya hari) terutama untuk aplikasi yang menghitung hari sebagai penentu biaya/harga seperti denda keterlambatan penyewaan buku, lamanya menginap di hotel, dll. Kita cukup menggunakan fungsi DateDiff yang ada pada VB dengan format penulisan sbb:

Dim hari As Long = DateDiff(DateInterval.Day, TanggalAwal, TanggalAkhir)

Wednesday, June 9, 2010

JOIN: Perintah SQL yang Powerful

Ketika membuat sebuah program aplikasi yang berhubungan dengan dua atau lebih tabel sebagai akibat dari adanya normalisasi basis data, gunakan perintah JOIN yang terdapat pada SQL daripada harus membuat source code yang rumit untuk membaca data.

Berikut ini adalah contoh dari perintah JOIN:
SELECT a.tanggal, b.kode_barang, b.qty, c.nama_barang, c.harga FROM (tblheaderjual AS a JOIN tbldetailjual AS b ON a.no_invoice = b.no_invoice) JOIN tblbarang AS c ON b.kode_barang = c.kode_barang WHERE b.kode_barang='00001'

Penjelasan:
Perintah SQL untuk menampilkan data dengan menghubungkan 3 tabel yang berbeda, yaitu tblheaderjual, tbldetailjual, dan tblbarang khusus barang dengan kode '00001'.

Tuesday, June 8, 2010

Membuat Label Waktu Berdetik

Jika Anda ingin menambahkan sebual label waktu pada form yang dapat berdetik, maka berikut ini syntax-nya:

Public Class Form1

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Format(Now, "hh:mm:ss")
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub

End Class

Penjelasan:
Timer1.Enabled = True berfungsi untuk membuat timer berdetik. Jika enabled-nya dibuat false, maka timer akan berhenti.
Label1.Text = Format(Now, "hh:mm:ss") untuk menampilkan waktu sekarang
 

Blogger news

About Me

Palembang, Sumatera Selatan, Indonesia
Seorang yang ingin terus belajar.