Rabu, 02 Mei 2012

Membuat Aplikasi Chart MSChart dengan VB.NET


MS Chart dengan VB.NET

Pada Microsoft Visual Studio/Visual Basic.NET tidak disediakan komponen Chart, komponen ini tersedia pada versi sebelumnya yaitu Visual Basic 6.0 dengan nama Microsoft Chart Control 6.0. Untuk memanggil komponen tersebut dapat dilakukan sama dengan ketika menambahkan komponen Windows Media Player, yaitu  pada Toolbox klik kanan Pilih Choose Items..


Setelah muncul dialog Choose Toolbox Items, kemudian pilih Tab COM Components. Kemudian cari dan cek Microsoft Chart Control 6.0. Klik OK.

 

Secara otomatis komponen Microsoft Chart Control akan ditambahkan pada Toolbox. Kemudian komponen MS Chart tersebut dapat ditambahkan pada Form. Untuk mengubah-ubah setting dari komponen MSChart yang  telah ditambahkan pada Form dapat dilakukan dengan mengubah-ubah properti dari MSChart pada Window Properties maupun dengan cara klik kanan komponen MSChart pada Form kemudian pilih ActiveX – Properties.


Akan muncul dialog Properties dari MSChart, pada dialog tersebut dapat diubah-ubah berbagai setting dari komponen MSChart antara lain Chart Type, Chart Options, Series, Axis, Text, Fonts, dsb. Setelah mengubah setting/properti selesai, klik OK.


Untuk memasukkan data yang akan ditampilkan komponen MSChart harus dilakukan dari kode program. Berikut ini contoh kode program yang dapat dipakai untuk mengolah MSChart secara dinamis dari kode program, baik untuk Chart yang berbentuk Pie, Line, Bar, dll.


Public Class FChart

    Private Sub bPie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bPie.Click
        cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType2dPie
        'cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType3dPie
        Dim MyArray(,) As Integer
        ReDim MyArray(0, 4)
        MyArray(0, 0) = 5
        MyArray(0, 1) = 4
        MyArray(0, 2) = 3
        MyArray(0, 3) = 2
        MyArray(0, 4) = 1
        cChart.ChartData = MyArray

        cChart.Row = 1
        cChart.RowLabel = "Hasil Pemilu"

        cChart.Column = 1
        cChart.ColumnLabel = "Partai Merah"
        cChart.Column = 2
        cChart.ColumnLabel = "Partai Kuning"
        cChart.Column = 3
        cChart.ColumnLabel = "Partai Biru"
        cChart.Column = 4
        cChart.ColumnLabel = "Partai Hijau"
        cChart.Column = 5
        cChart.ColumnLabel = "Partai Putih"

        cChart.Title.Text = "Chart Pie"
        cChart.ShowLegend = True
    End Sub

    Private Sub bLine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bLine.Click
        cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine
        'cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType3dLine
        Dim MyArray(,) As Double
        ReDim MyArray(2, 4)
       
        Dim i, j As Integer

        For i = 0 To UBound(MyArray)
            For j = 0 To UBound(MyArray, 2)
                MyArray(i, j) = Rnd() * 10
            Next
        Next

        cChart.ChartData = MyArray

        cChart.Row = 1
        cChart.RowLabel = "Satu"
        cChart.Row = 2
        cChart.RowLabel = "Dua"
        cChart.Row = 3
        cChart.RowLabel = "Tiga"

        cChart.Column = 1
        cChart.ColumnLabel = "Nilai A"
        cChart.Column = 2
        cChart.ColumnLabel = "Nilai B"
        cChart.Column = 3
        cChart.ColumnLabel = "Nilai C"
        cChart.Column = 4
        cChart.ColumnLabel = "Nilai D"
        cChart.Column = 5
        cChart.ColumnLabel = "Nilai E"

        cChart.Title.Text = "Chart Line"
        cChart.ShowLegend = True
    End Sub

    Private Sub bBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bBar.Click
        cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar
        'cChart.chartType = MSChart20Lib.VtChChartType.VtChChartType3dBar

        Dim i, j As Integer

        cChart.RowCount = 3
        cChart.ColumnCount = 5
        For i = 1 To cChart.RowCount
            For j = 1 To cChart.ColumnCount
                cChart.Row = i
                cChart.Column = j
                cChart.Data = Rnd() * 10
            Next
        Next

        cChart.Row = 1
        cChart.RowLabel = "Satu"
        cChart.Row = 2
        cChart.RowLabel = "Dua"
        cChart.Row = 3
        cChart.RowLabel = "Tiga"

        cChart.Column = 1
        cChart.ColumnLabel = "Nilai A"
        cChart.Column = 2
        cChart.ColumnLabel = "Nilai B"
        cChart.Column = 3
        cChart.ColumnLabel = "Nilai C"
        cChart.Column = 4
        cChart.ColumnLabel = "Nilai D"
        cChart.Column = 5
        cChart.ColumnLabel = "Nilai E"

        cChart.Title.Text = "Chart Bar"
        cChart.ShowLegend = True
    End Sub
End Class

Setelah dijalankan, hasilnya dapat dilihat pada tampilan berikut ini :