Fitur VB9 (Lambda Expression)

Halo, setelah lama absen posting tentang VB kangen juga untuk
membahas fitur-fitur baru VB :), posting ini adalah posting kesembilan
saya tentang fitur dari VB9 yaitu Lambda Expression, Mungkin anda sudah
sering menggunakan Lambda Expression di C# 3.0, pada posting kali ini
akan ditunjukan juga beberapa perbedaan fitur di VB dan C#. 

anda dapat melihat posting saya sebelumnya:

Lambda Expression adalah istilah yang diambil dari functional
programming, Lambda Expression digunakan untuk memudahkan anda membuat
fungsi/method. contoh penulisan Lambda Expression

Function (e) e + 1

fungsi diatas mempunyai satu parameter e, dan mengembalikan e+1.

Untuk menunjukan penggunaan Lambda Expression pada VB, maka sebagai
contoh saya akan membuat array berisi integer dan memfilter yang
nilainya > 6 dengan Lambda Expression

Sub Main()
Dim arrBil() = {4, 5, 7, 9, 12, 3, 2}
Dim filter = arrBil.Where(Function(b) b > 5)
For Each i In filter
Console.WriteLine(i)
Next
End Sub

Lambda Expression dan Delegates

Lambda Expression dapat digunakan untuk mempermudah penggunaan delegates di VB. Tanpa Lambda anda dapat menuliskan:

'deklarasi delegates
Public Delegate Function UbahInt(ByVal x As Integer) As Integer

'buat fungsi yang akan ditunjuk oleh delegates
Function Gandakan(ByVal x As Integer) As Integer
Return x * 2
End Function

Kemudian buat instance delegates sebagai berikut

Sub Main()
Dim mydel As UbahInt = New UbahInt(AddressOf Gandakan)
Console.WriteLine("{0}", mydel(5))
End Sub

Maka program diatas akan mencetak 10.

Dengan menggunakan Lambda Expression anda dapat menuliskan :

Public Delegate Function UbahInt(ByVal x As Integer) As Integer
Sub Main()
Dim mydel As UbahInt = Function(x) x * 2
Console.WriteLine(mydel(5))
End Sub

Program diatas juga akan mencetak 10 sama dengan sebelumnya, tapi
dengan menggunakan Lambda Expression penambahan method menjadi lebih
mudah :)

Menggunakan Lambda dengan Dua Parameter

Anda juga dapat menggunakan Lambda dengan dua parameter, cara penulisannya:

'delegates dengan dua parameter
Public Delegate Function Kali(ByVal x As Integer, ByVal y As Integer) As Integer

'mencetak 5*6=30
Sub Main()
Dim mydel = Function(x, y) x * y
Console.WriteLine(mydel(5, 6))
End Sub

Anda juga dapat menggunakan Select() extension method dengan Lambda
Expression yang mempunyai dua parameter, parameter pertama untuk nilai
sedangkan parameter kedua untuk index

Dim nama() = {"erick", "wely", "sony", "ridi"}
Dim filter = nama.Select(Function(x, i) "Nama ke " + i.ToString() + " : " + x)
For Each i In filter
Console.WriteLine(i)
Next

jika program dijalankan akan mencetak:

image  

Statement Lambda Expression

VB9 belum mendukung Statement Lambda Expression seperti yang ada
pada C# 3.0, VB akan mensupport fitur ini pada versi VB10. Jika
menggunakan Statement Lambda Expression di C# anda dapat menuliskan:

//menggunakan Statement Lamda pada C# 
string[] nama = new[] { "erick","wely","sony","ridi","eriawan" };

foreach (string n in nama.Where(
x => {
if (x.Contains("eri"))
return true;
else
return false;
}
))

Console.WriteLine(n);

dengan VB9 anda dapat menghasilkan output yang sama dengan menuliskan kode sebagai berikut:

Function CekNama(ByVal nama As String)
If nama.Contains("eri") Then
Return True
Else
Return False
End If
End Function

Sub Main()
Dim nama() = {"erick", "wely", "sony", "eriawan"}
Dim filter = nama.Where(Function(x) CekNama(x))
For Each n In filter
Console.WriteLine(n)
Next
End Sub

maka akan dicetak output:

image 

happy coding ^_^

Validasi Inputan (C# dan VB.NET)

Kadang kita butuh untuk memvalidasi atau membatasi inputan yang dimasukan oleh user, berikut adalah cara sederhana untuk membatasi inputan agar inputan yang dimasukan hanya bisa berupa angka saja (tidak bisa berupa huruf).

Untuk menangani validasi tersebut buat method berikut

 

(C# version)

private void ValidateInputNumeric(Object sender,KeyPressEventArgs e)
        {
            TextBox t;
            if (sender.GetType() is TextBox)
            {
                t = (TextBox)sender;
                if (t.Name == txtHarga.Name || t.Name == txtStok.Name)
                {
                    if (!Char.IsNumber(e.KeyChar) && e.KeyChar!=(char)8)
                    {
                        e.Handled = true;
                    }
                }
            }
        }

 

(VB version)

Private Sub ValidInputNumeric(ByVal sender As Object, _
    ByVal e As KeyPressEventArgs) Handles txtStok.KeyPress, txtHarga.KeyPress
        Dim t As TextBox
        If sender.GetType() Is GetType(TextBox) Then
            t = CType(sender, TextBox)
            If t.Name = txtHarga.Name Or t.Name = txtStok.Name Then
                If Not Char.IsNumber(e.KeyChar) And _
                e.KeyChar <> vbBack Then
                    e.Handled = True
                End If
            End If
        End If
    End Sub

 

kemudian tambahkan method yang sudah kita buat diatas kedalam event keypress di control yang akan divalidasi (misal: textbox)

 image

 

masukan pada event keypress

image

Calculator Postfix

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

#define MAX 20

int data[20];
int top=-1;

int isFull(){
	if(top==MAX-1) return 1; else return 0;
}

int isEmpty(){
	if(top==-1) return 1; else return 0;
}

void push(int d){
	if(isFull()==0){
		top++;
		data[top]=d;
	}
}

int pop(){
	int t=-1;
	if(isEmpty()==0){
		t=data[top];
		top--;
	}
	return t;
}

void operasi(char o){
	int a, b, h;
	switch(o){
		case '+':
					a = pop();
					b = pop();
					h = b + a;
					push(h);
					break;
		case '-':
					a = pop();
					b = pop();
					h = b - a;
					push(h);
					break;
		case '*':
					a = pop();
					b = pop();
					h = b * a;
					push(h);
					break;
		case '/':
					a = pop();
					b = pop();
					h = b / a;
					push(h);
					break;
		case '=':
					a = pop();
					if(a!=-1) printf("%d\n",a);
					else printf("EMPTY\n");
	}
}

int isOp(char* op){
	if(strcmp(op,"+")==0 || strcmp(op,"-")==0 || strcmp(op,"*")==0 || strcmp(op,"/")==0 || strcmp(op,"=")==0)
		return 1;
	else return 0;
}

void main(){
	char d[10];
	while(1){
		scanf("%s",d);
		if(isOp(d)){
			operasi(d[0]);
		} else if(strcmp(d,"x")==0){
			break;
		} else push(atoi(d));
	}
}

Kelas Baru VB.NET periode Agustus

Dibuka kelas baru VB.NET untuk periode bulan agustus, materi pelatihannya adalah:

  • Introducing Visual Basic 2005
  • .NET Framework (CLR, Managed Code, Namespaces, Types dan Object, Class Library)
  • Introduction OOP (Abstraction, Encapsulation, Interface, Polymorphism, Overloading)
  • Variables dan Data Types (Value dan Reference Types, Variable Scope, lifetime, Access level, Arrays, Collections)
  • Operators (Arithmetic operator, Comparison, Object operator, Operator overloading)
  • Generic
  • Error Handling
  • SQL Server Express 2005
  • Studi Kasus: Aplikasi Stok, Pembelian, Penjualan

Lama Training: 24 jam (jadwal diatur sesuai dengan permintaan peserta dan kesediaan trainer)

Pendaftaran: email ke actualtraining@gmail.com atau telp 08156881169

Kapasitas Peserta: 6 orang

Peserta yang sudah mendaftar saat ini sebanyak 3 orang

kelas akan segera dimulai jika jumlah peserta sudah memenuhi

Kelas Baru ASP.NET 2.0 (C#) (Periode 18 Agustus 2008 – 25 Agustus 2008)

Untuk periode bulan agustus 2008 dibuka kelas training ASP.NET 2.0 (C#) untuk mahasiswa

Materi pelatihan : 

  • Penggunaan Standar Control, Validation Control, dan Rich Control
  • Master Pages, Theme, User Control
  • DataSource Control: SqlDataSource Control untuk akses data
  • DataBound Control: List, GridView, DetailsView, Repeater, FormView, dan DataList
  • Site Navigation, Site Map
  • Security: Menggunakan Login Control, CreateUserWizard, LoginName, ChaangePassword, PasswordRecovery, dan LoginView
  • ASP.NET Membership: Authentication, Authorization, ASP.NET Membership Class, Role Manager
  • Studi Kasus: Aplikasi E-Commerce dengan ASP.NET

    Lama Training: 24 jam (jadwal diatur sesuai dengan permintaan peserta dan kesediaan trainer)

    Pendaftaran: email ke actualtraining@gmail.com atau telp 08156881169

    Kapasitas Peserta: 6 orang

    Peserta yang sudah mendaftar saat ini sebanyak 4 orang

    kelas akan segera dimulai jika jumlah peserta sudah memenuhi

  • Kelas baru PHP dan MySQL (periode agustus 2008)

    Dibuka kelas baru PHP dan MySQL periode agustus dengan materi sebagai berikut:

    • Intro PHP 5 (fitur PHP 5, cara instalasi)
    • Sekilas XHTML dan CSS untuk design halaman
    • Tipe data, Variabel, Operator (scope variable, global dan local variable)
    • Pernyataan Kontrol (if, switch, while, for)
    • Menggunakan Fungsi (buitin function, user function)
    • Session dan Cookies
    • Intro MySQL dan penggunaan PHPMyAdmin
    • Integrasi MySQL dan PHP (koneksi, manipulasi data, CRUD)
    • Penggunaan Template (manual, smarty template)
    • Studi Kasus: Membangun E-Commerce dengan PHP dan MySQL

    Lama Training: 24 jam (jadwal diatur sesuai dengan permintaan peserta dan kesediaan trainer)

    Pendaftaran: email ke actualtraining@gmail.com atau telp 08156881169

    Kapasitas Peserta: 6 orang

    Peserta yang sudah mendaftar saat ini sebanyak 2 orang

    kelas akan segera dimulai jika jumlah peserta sudah memenuhi

    Firefox 3 Lebih Cepat, Lebih Aman, Lebih Cerdas

    Pada hari selasa tanggal 18 Juni 2008, browser paling populer didunia firefox meluncurkan versi terbarunya yaitu Firefox 3, pada hari itu juga Firefox 3 juga mencatat rekor dari Guiness Book yaitu slebih dari 5 juta orang mendownload Firefox 3, di Indonesia sendiri tercatat lebih dari 13000 download terjadi pada hari itu.

    Pihak mozilla mengatakan bahwa firefox 3 akan lebih cepat, lebih aman, dan lebih cerdas dari versi sebelumnya. Beberapa fitur menarik yang ditambahkan pada Firefox 3 diantaranya.

    Fasilitas One-Click Bookmarking

    Dengan fasilitas ini anda dapat menambahkan dan mengatur bookmark dengan mudah. Untuk mengakses fasilitas tekan Ctrl+D atau klik tanda bintang dibagian address bar.

    clip_image002

    maka akan tampil window bookmark sebagai berikut

    clip_image004

    Anda dapat menambahkan folder untuk mengkategorikan bookmark anda, untuk pencarian yang lebih cepat anda juga dapat menambahkan tag, jika anda ingin mengunjungi situs yang sudah anda bookmark anda hanya perlu mengetikan tag-nya di address bar.

    clip_image006

    Smart Location Bar

    Menurut saya ini adalah fasilitas yang sangat menarik, karena dapat memudahkan anda dalam pencarian situs tertentu, sekarang jika anda ingin menampilkan situs yang anda maksud anda harus mengetikan alamat lengkapnya, tetapi dengan fasilitas ini anda cukup mengetikan bagian informasi dari situs tersebut maka secara cerdas Firefox 3 akan menemukannya untuk anda.

    clip_image008

    Peningkatan Performa

    Peningkatan Memory Management : Pada Firefox 3 ditambahkan fasilitas untuk pengaturan memory management yang lebih baik, dengan XPCOM cycle collector yang akan membersihkan memory yang sudah ditak digunakan lagi, ini akan dapat meningkatkan performa yang signifikan.

    Faster JavaScript : Firefox 3 juga lebih mensupport pengembangan aplikasi web yaitu dengan JavaScript 1.8 yang meliputi expression closures, generator expression dan array reduce. Dengan demikian eksekusi script JavaScript akan lebih cepat.

    Smaller Memory Footprint : Firefox 3 lebih sedikit menggunakan kapasitas komputer memory untuk menjalankan program.

    Faster Paged Load : Firefox 3 mendesain kembali page rendering dan layout engine ini berarti anda akan dapat menampilkan halaman web dengan lebih cepat.

    Graphics Engine Improvements : peningkatan text rendering untuk semua graphic engine pada Firefox 3.

    Full Zoom

    Failitas zoom yang dimiliki Firefox 3 sangat canggih, biasanya jika anda menggunaka zoom maka yang menjadi lebih besar hanya text-nya saja sedangkan untuk image tetap, dengan menggunakan Firefox 3 anda dapat melakukan zoom untuk text maupun image. Cara melakukan zoom-in dengan menekan Ctrl++, untuk zoom out menggunakan Ctrl+-.

    Platform-Native Look & Feel

    Firefox 3 juga menyesuaikan tampilannya sesuai dengan platform sistem operasi anda, jika anda menggunakan Windows XP, Windows Vista, atau Linux maka tampilannya akan berbeda pula.

    Add-ons Manager

    Sekarang anda menggunakan add-on manager untuk mengatur dan menginstall add-ons pada browser anda, dengan menggunakan fasilitas ini pengaturan add-on menjadi lebih mudah

    clip_image010

    Instan Web Site ID

    Anda ingin memastikan bahwa website yang anda kunjungi aman untuk bertransaksi, maka Firefox 3 akan memberikan informasi tentang website tersebut.

    clip_image012

    Password Manager

    Firefox 3 mempunyai fasilitas yang dinamakan password manager untuk “mengingat” password anda pada situs-situs tertentu yang membutuhkan password. Sekarang anda tida akan diganggu dengan messagebox yang menanyakan apakah mau menyimpan password seperti versi sebelumnya, browser hanya akan menampilkan notification disebelah atas browser.

    clip_image014

    Pemrograman Windows Application dan Database dengan IDE NetBeans

     

    Tujuan

    Memberikan konsep pemrograman database dengan menggunakan java dan JDBC, sehingga peserta dapat membuat program java menggunakan database SQl Server atau MySQL, untuk membantu mempercepat deployment digunakan IDE NetBeans.

     

    Keterangan

    • Jumlah pertemuan : 12x
    • Total waktu training : 30 jam
    • Jumlah jam per pertemuan : 2,5 jam
    • Jadwal pertemuan dapat diatur kemudian bisa 2x atau 3x seminggu, hari dan jam disesuaikan dengan peserta kelas dan pengajar.
    • Alternatif lain adalah dengan workshop model yaitu memadatkan pertemuan menjadi 4x pertemuan, per petemuan 7,5 jam selama 2 minggu (hari sabtu dan minggu)
    • Peserta dapat membawa notebook sendiri atau menggunakan komputer yang disediakan.

     

    Hands-On Modul

    • Setiap peserta akan mendapatkan modul pelatihan

     

    Software Requirement

    • Windows XP SP2 atau Vista
    • J2SDK 1.6 
    • Netbeans 6.1

     

    Materi Training

    • Pengenalan JDBC
      • JDBC Connectivity Model
      • Database Programming
      • Koneksi data ke Database
      • Membuat SQL Query
      • Menampilkan Results
      • Mengupdate Database Data
      • Finishing Up
    • Pengantar Threads
      • Non-Threaded Applications
      • Threaded Applications
      • Membuat Threads
      • Thread States
      • Runnable Threads
      • Coordinating Threads
      • Interrupting Threads
      • Runnable Interface
      • ThreadGroups
    • JDBC SQL Programming
      • Error Checking dan SQLException Class
      • SQLWarning Class
      • JDBC Types
      • Executing SQL Queries
      • ResultSetMetaData
      • Executing SQL Updates
      • Menggunakan PreparedStatement
      • Parameterized Statements
      • Stored Procedures
      • Transaction Management
    • Studi kasus membuat aplikasi menggunakan Java dan JDBC dengan NetBeans