Selasa, 07 Oktober 2008

PARA KETURUNAN VISUAL BASIC - JILID III

Setelah pada jilid I dan II kita membahas tentang VBA dan VBScript, maka pada Jilid III ini kita bahas keturunan Visual Basic berikutnya : VB.NET.

3. VB.NET
VB.NET merupakan keturunan terbaru dan termodern dari VB. Bahasa ini hampir seluruhnya mengalami desain ulang untuk mengakomodir model pemrograman yang baru dari Microsoft : .NET Framework. Meskipun telah mengalami desain ulang, akan tetapi dibeberapa bagian tetap dapat menyesuaikan dengan versi VB sebelumnya. Hal ini dilakukan karena dua alasan utama. Pertama, agar dapat meningkatkan kemampuan dan intuisi jutaan developer yang telah menggunakan VB. Kedua, agar mempermudah menggabungkan kode VB sebelumnya dengan kode pada VB.NET.
Sebelum membahas lebih jauh tentang VB.NET, mari kita lihat dulu bagaimana sejarah terbentuknya platform .NET Framework tersebut. Karena dengan begitu, VBro dapat mengetahui esensi sebenarnya dari VB.NET dalam .NET Framework dan mengetahui bagaimana arah perkembangan pemrograman selanjutnya.
Ketika VB 4.0 dirilis pada bulan September 1995, diperkenalkanlah istilah Common Object Model (COM). COM adalah suatu framework untuk mengembangkan komponen yang dapat dipergunakan lintas aplikasi yang dikembangkan oleh bahasa yang sama maupun yang berbeda. Akan tetapi dalam kenyataan, COM tidak dapat bekerja dengan baik apabila dipergunakan oleh aplikasi yang dikembangkan lintas bahasa. Sebagai contoh, COM yang dikembangkan oleh bahasa VB akan sulit untuk dapat dipergunakan oleh aplikasi yang dikembangkan dengan bahasa C++. Selain itu juga, COM biasanya hanya mampu untuk melakukan interaksi belaka, tanpa adanya kemampuan untuk mengatur memori ataupun lifetime-nya sebagai sebuah service component. Ini merupakan suatu kelemahan yang fatal bagi sebuah framework. Disamping itu, kemunculan Platform Java pada tahun 1990 dari Sun Microsystem telah membuat banyak developer, khususnya C beralih menggunakan Java sebagai bahasa pengembangan mereka. Hal ini selain karena teknologi COM-nya yang sudah modern, juga mendukung fitur untuk interoperabilitas tidak hanya lintas aplikasi, akan tetapi lintas Operating System (Windows/Linux/Solaris/Symbian), melalui teknologi Java Virtual Machine-nya.
Hal ini membuka mata para engineer Microsoft, bahwa perlu dikembangkan suatu platform pengembangan baru bagi Microsoft, jika ingin bersaing lebih baik. Pada tahun 1997, dimulailah riset untuk menentukan platform baru tersebut. Pertama hal yang muncul adalah mengembangkan lebih lanjut teknologi Win32 API (dimiliki oleh Windows NT), yaitu suatu kumpulan native libraries yang dipergunakan untuk menjalankan Windows. Akan tetapi, lagi-lagi ada suatu masalah. Win32 API terbilang primitif, karena hanya didesain untuk mereka yang menggunakan C sebagai bahasa pengembangannya. Hal ini tentu tidak sesuai dengan kenyataan yang ada, dimana pemrograman modern yang mendukung object-oriented paling banyak diminati dan dipakai.
Singkat cerita, akhirnya para engineer Microsoft menarik satu kesimpulan yang penting : Merupakan suatu hal utama dimana platform baru tidak terikat oleh Operating System tertentu maupun arsitektur hardware tertentu, tetapi platform baru tersebut juga dapat dipergunakan pada high-end server, mobile device (Handphone, PDA) serta menjalankan hardware pada Personal Computer biasa. Karena itu, mereka memutuskan platform baru tersebut harus bertindak mandiri. Inilah definisi baku sesungguhnya dari .NET Framework, sebagaimana dapat VBro lihat pada gambar berikut ini :




Sekarang marilah kita meninjau bagaimana sesungguhnya cara kerja .NET Framework tersebut. Pertama, .NET Framework selalu terdiri dari kumpulan komponen objek, yang berbentuk Framework Class Library (FCL). FCL inilah yang nantinya didedikasikan sebagai pengganti dari Win32 API, meskipun pada kenyataannya hal ini belum terjadi. Keunggulan FCL terletak pada dukungan fungsi dan libraries yang lebih luas, kemampuan untuk memproses XML lebih baik serta XSL yang lebih handal. Fyi, XSL adalah pengembangan teknologi bahasa XML yang memungkinkan transformasi dokumen XML (.XML) menjadi format dokumen lainnya (contoh: .HTML, .XLS) ataupun ke format database tertentu (contoh : MS-SQL, Oracle).
Kedua, .NET Framework menyediakan media standar run-time berdasarkan engine yang dikenal dengan nama Common Language Runtime (CLR). CLR inilah diharapkan menjadi solusi bagi teknologi COM yang memiliki kendala atas pengaturan memori dan lifetime suatu komponen. Adapun fungsi dari CLR adalah selain bertanggung jawab untuk melakukan loading atas kode, juga mengatur proses eksekusinya, sehingga proses kode lebih baik dan teratur. Selanjutnya, Kode-kode tersebut di compile menjadi kode-kode assembly agar dapat berjalan dengan cepat dengan ukuran file yang kecil. Tentu saja, agar kode-kode assembly dapat terkesekusi dengan baik, maka harus dibuat pada lingkungan .NET Framework juga, apakah menggunakan bahasa pemrograman VB.NET, C# (C Sharp) atau bahkan COBOL sekalipun. Hal ini dapat dilihat pada gambar di bawah ini :



Pada VB.NET, kode-kode yang telah ditulis akan ditransform oleh compiler menjadi EXE atau DLL. Ada 2 (dua) cara bagaimana menjalankan compiler. Pertama, melalui IDE Visual Studio.NET. Kedua, dengan command-line melalui utility bernama VBC.EXE, yang merupakan bagian dari .NET Framework. Tidak seperti versi VB sebelumnya, compiler bagi VB.NET tidak tergantung pada alat pengembangnya, seperti Visual Studio.NET, akan tetapi pada .NET Framework. Sehingga, VBro dapat menulis kode VB.NET pada teks editor manapun. Sekarang, mari kita mulai membuat program VB.NET.
1. Tentu saja lakukan instalasi .NET Framework jika Windows VBro bukan Windows Server 2003. Karena, .NET Framework hanya terinstal secara default di OS ini.
2. Buka notepad.
3. Ketik (copy-paste) kode berikut :
Class AppGw
Shared Sub Main()
Dim NamaSaya As Saya = New Saya()
NamaSaya.Nama = "Nuzwan Gufron"
System.Console.WriteLine( NamaSaya.Tulis() )
Microsoft.VisualBasic.Interaction.MsgBox(NamaSaya.Tulis(), MsgBoxStyle.Information, )
End Sub
End Class

Class Saya
Public Nama As String

Public Function Tulis() As String
Return "Nama Saya Adalah " & Me.Nama
End Function
End Class


4. Simpan menjadi file : C:\TestVBNET.vb
5. Cari file VBC.EXE. Biasanya pada direktori :
WINDOWS\Microsoft.NET\Framework\v2.0.50727

v2.0.50727 menunjukan versi .NET Framework yang terinstal di komputer Saya.

6. Klik tombol Start, lalu Run. Ketik cmd. Selanjutnya akan muncul command-line.
7. Pindah ke direktori dimana file VBC.EXE berada.
8. pada command-line ketik (Copy-Paste) perintah berikut : vbc /t:exe C:\ TestVBNET.vb
maka CLR akan mengubah Kode pada file TestVBNET.vb menjadi TestVBNET.exe
9. Pindah ke direktori C:\ dan kemudian ketik : TestVBNET
10. Program akan berjalan dan menampilkan kalimat dan Message Box :
Nama Saya Adalah Nuzwan Gufron sebagaimana gambar di bawah ini :



Selamat ! VBro baru saja membuat program VB.NET sederhana !. Untuk sementara, disini tidak kita bahas secara detail bagaimana kode per-kode bekerja. Hanya, secara sekilas bagi VBro yang sudah pernah belajar VB sebelumnya akan menemukan beberapa perbedaan.
Pertama, pembuatan Class dilakukan dalam satu file, dimana dalam versi VB sebelumnya setiap class akan memiliki module-nya (file) masing-masing. Kedua, pembuatan sebuah objek class dilakukan dalam cara yang berbeda, diman dalam versi VB sebelumnya selalu menggunakan perintah SET. Untuk jelasnya berikut yang Saya maksud :
Dalam VB.NET :
Dim NamaSaya As Saya = New Saya()

Dalam VB 6.0 :
Dim NamaSaya As Saya
Set NamaSaya = New Saya


Ketiga, untuk dapat menggunakan komponen objek dalam FCL, kita harus mengetahui secara pasti nama komponen objek tersebut. Sebagai contoh, untuk menulis hasil ke dalam command-line perintah berikut dapat digunakan :
System.Console.WriteLine( NamaSaya.Tulis() )

Sedangkan untuk menampilkan suatu Message box dalam Windows, maka kita gunakan :
Microsoft.VisualBasic.Interaction.MsgBox(NamaSaya.Tulis(), MsgBoxStyle.Information, )

Demikianlah pembahasan para keturunan VB. Saya sengaja tidak mengupas secara detail semua hal, karena selain kita belum fokus kepada pemrograman, juga bahasan yang Saya angkat hanya berkisar pada pengenalan dan pengklasifikasian keturunan VB. Selanjutnya, VBro dapat menantikan tulisan-tulisan Saya di blog ini yang akan mengupas tuntas banyak hal seputar keturunan VB tersebut. Terima kasih dan Happy VB Programming !

PARA KETURUNAN VISUAL BASIC - JILID II

Setelah pada jilid I kita membahas tentang VBA, berikut kita bahas keturunan Visual Basic berikutnya : VBScript.

2. VBScript
Microsoft memperkenalkan Visual Basic Scripting Edition – atau lebih dikenal VBScript – pada pertengahan tahun 1990. Tujuannya adalah untuk memposisikan VBScript sebagai penerus bahasa batch DOS yang dikembangkan untuk lingkungan windows. Perlu VBro ketahui, bahwa bahasa batch merupakan bahasa scripting populer yang digunakan dalam lingkungan DOS untuk mengotomatisasi serangkaian proses dalam lingkungan DOS tersebut. Karenanya, VBScript selalu di bundle dengan OS Windows – mulai Windows 95 (optional), Windows NT (optional) hingga Windows XP (build-in) dan Windows Server 2003(build-in) dan tentu juga versi Windows terbaru : Vista (build-in).
VBScript diharapkan dapat menjadi bahasa scripting yang mudah, handal dan tentu saja fleksibel. Hal ini terbukti dengan banyak dipergunakan VBScript sebagai salah satu bahasa script yang populer dalam aplikasi pengembangan web milik Microsoft yaitu Active Server Pages (ASP). Akan tetapi, sebenarnya VBScript jauh dari sekedar itu peran fungsinya. Ia dapat juga berperan untuk membantu para Administrator Windows untuk dapat mengkustomasi, mengotomatisasi dan mengatur proses Windows sesuai yang diinginkannya. Bahkan, karena mudah, handal dan fleksibelnya, VBScript sering disalahgunakan, sebagai sarana penyebar virus, maupun kejahatan lain terutama mencuri data (carding, phising). Tentu kita tidak membahas ini, kecuali VBro minta…hehe.
Saya akan coba menunjukan mudahnya menggunakan VBScript (pada Windows XP atau Windows terbaru). Berikut langkah-langkahnya :

1. Buka Notepad
2. Tulis (Copy-Paste) kode script berikut pada notepad :

Set SNSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")

for each SN in SNSet
MsgBox "No. Seri Windows Anda : " & SN.SerialNumber
Next


3. Simpan dengan nama : Test.vbs pada direktori C:\
4. Klik-dua kali file Test.vbs
5. Script akan tereksekusi dan menampilkan No Seri Windows Anda.

Mengapa file Text.vbs tersebut dapat tereksekusi ? Hal ini dikarenakan ekstensi .VBS terdaftar sebagai file bagi Microsoft Windows Based Script Host (WSH), dengan program host-nya bernama : Wscript.exe. Program inilah yang kemudian menjalankan baris demi baris dari setiap file Test.vbs tersebut. Untuk memastikannya, VBro dapat melihat pada Folder Option melalui Explorer Windows, sebagaimana gambar berikut :



Selain VBScript, Wscript.exe juga dapat mengeksekusi JScript, atau Java Script. Dikarenakan WSH merupakan komponen built-in pada Windows 2000 atau Windows terbaru lainnya (Me/XP/2003/2008/Vista), maka untuk Windows versi sebelumnya harus melalui instalasi terlebih dahulu dan dapat diperoleh di website Microsoft secara gratis (www.microsoft.com/scripting).

Cara lain untuk mengeksekusi file .VBS adalah melalui command-line. Hal ini dikarenakan selain Wscript.exe, ada program host lainnya yang dapat digunakan khusus untuk command-line, yaitu Cscript.exe. Untuk mencobanya, VBro dapat melakukan hal berikut :
1. Klik tombol Start – Lalu klik Run.
2. Ketik cmd. Selanjutnya akan muncul command-line.
3. Pada prompt command-line, ketik (Copy-Paste): Cscript C:\Test.vbs
4. Script akan tereksekusi dan menampilkan No Seri Windows Anda, sebagaimana gambar berikut :



Mungkin VBro bertanya, apa beda antara Wscript.exe dan Cscript.exe ?. Jawabnya adalah pada kegunaannya. Jika Script yang akan ditulis tidak membutuhkan tampilan berupa Message Box, input box dari pengguna atau interface lainnya, maka pilihan sebaiknya menggunakan Cscript.exe. Sebaliknya, jika VBro membutuhkan Message Box, Input Box ataupun Interface lainnya, maka gunakanlah Wscript.exe.
Untuk dapat menulis Script yang baik, apalagi kalau sudah berhubungan dengan komponen objek tertentu seperti contoh di atas, tentu dibutuhkan Script Editor yang handal, bukan hanya dengan Notepad saja. Meskipun Microsoft sudah mempunyai Visual Studio Script Editor yang di-bundle dalam Visual Studio-nya, layak juga VBro mempergunakan editor pihak ketiga seperti VbsEdit (www.adersoft.com), Scribbler 2000 (www.creamsoft.com) dan PrimalScript (www.sapien.com). Yang terakhir ini yang banyak digunakan dan direkomendasikan karena selain InteliSense-nya yang baik (InteliSense adalah kemampuan suatu lingkungan bahasa pemrograman (IDE) menampilkan object properties atau object action dari suatu Object secara otomatis, ketika tanda titik (.) diketik setelah nama object tersebut), kemampuan untuk integrasi dengan Microsoft Script Debugger terutama karena kemampuan untuk Script Signing, yang berfungsi sebagai secure scripting.

Selanjutnya, pada Jilid III kita akan membahas keturunan VB berikutnya : VB.NET.

Rabu, 01 Oktober 2008

PARA KETURUNAN VISUAL BASIC - JILID I

Tidak dipungkiri lagi VB merupakan bahasa pemrograman komputer yang powerful. Dengan VB, kita bisa dengan cepat menghasilkan aplikasi dari sebuah masalah pemrograman komputer dengan cepat dan mudah. Hal ini selain karena bahasanya mudah dipahami, banyaknya dukungan komponen dari pihak ketiga, juga terutama adalah jangkauan lingkungan pengembangannya yang luas, mulai dari aplikasi stand-alone bagi Windows, aplikasi web-based, aplikasi makro (VBA) dalam MS-Office hingga makro dalam program pihak ketiga lainnya (VBA pada Corel Draw 12)).
Karena hal tersebut di atas, maka integrasi suatu program yang dikembangkan dengan VB jauh lebih mudah dan cepat. Sebagai contoh, VBro bisa membuat suatu aplikasi stand-alone VB, sekaligus menggunakan VBA untuk membuat laporannya pada Ms-Word. Atau membangun aplikasi web-based yang terintegrasi data dengan Ms-Office melalui VB.NET.
Untuk lebih memahami bagaimana jangkauan lingkungan pengembangan VB, maka kita harus mengetahui bahasa turunan VB pada masing-masing lingkungan tersebut. Meski semua menggunakan VB sebagai bahasa utamanya, akan tetapi masing-masing lingkungan memiliki fungsi dan keterbatasannya. Berikut adalah sekilas penjelasan para keturunan VB tersebut :

1. VBA – Visual Basic for Application
Kalau secara harfiah diartikan, VBA merupakan bahasa VB bagi “suatu aplikasi”. Yang dimaksud dengan “suatu aplikasi” disini adalah aplikasi yang kompleks seperti MS-Office maupun aplikasi yang telah disertifikasi oleh Microsoft seperti Corel Draw 12 atau Extra!Personal Client (emulator Linux via Windows). Untuk definsi yang lebih tepat, VBA adalah bahasa internal suatu aplikasi (hosted-languange) yang berguna untuk dapat melakukan kustomasi dan otamatisasi proses dalam aplikasi tersebut maupun lintas aplikasi melalui teknologi OLE (Object Linking Embedded) ataupun ActiveX. Karena itu, VBA memiliki kemampuan untuk menciptakan aplikasi Windows yang cepat dan handal, apakah melalui lingkungan IDE VBA sendiri ataupun lingkungan IDE VB.
Meskipun VBA memiliki keunggulan, akan tetapi ada beberapa perbedaan utama antara VB dan VBA yang harus VBro ketahui, diantaranya yaitu :
a.VBA merupakan bahasa interpreter. Artinya, aplikasi yang ditulis dengan VBA akan dieksekusi dalam aplikasi host dimana VBA berada. Sebagai contoh, aplikasi VBA untuk Ms-Excel, akan selalu membutuhkan Ms-Excel (dalam bentuk komponen objek atau aplikasi executable-nya) dalam setiap eksekusinya. Sedangkan untuk VB, hal itu tidak berlaku, karena VB dapat kita compile menjadi program tereksekusi (executable) secara mandiri.
b.VBA hanya dapat menggunakan komponen ActiveX, sedangkan VB selain dapat menggunakan ActiveX juga dapat kita compile menjadi ActiveX sendiri.
c.VBA akan selalu dapat dipergunakan dimanapun host aplikasi berada. Sedangkan VB selalu membutuhkan media run-time-nya terlebih dahulu sebelum dapat dipergunakan.



Lingkungan Pengembangan (IDE) VBA


Popularitas MS-VB yang terus meningkat sejak pertama kali diperkenalkan pada tahun 1991, membuat Microsoft melakukan perubahan strategis pada produk lainnnya, Ms-Office. Tujuannya tentu jelas : agar produk Ms-Office tersebut dengan cepat diterima oleh pasar melalui serangkaian keunggulan dibandingkan produk lain yg sejenis yang telah Ada, apakah WordStar atau WordPerfect. Fitur khusus yang dimaksud tentu saja adalah VBA. Berikut adalah bagaimana kronologi perkembangan VBA sejak pertama kali hingga sekarang :
Tahun 1993 – VBA Pertama kali di bundle dalam Ms-Excel. Dengan berbekal bahasa popular VB, kombinasi VBA dan Ms-Excel menawarkan berbagai solusi khusus maupun spesifik yang sering dihadapi developer dalam menggunakan spreadsheet.
Tahun 1994 – VBA diintegrasikan dengan Ms-Project. Berita ini membuat para Project Manager di seluruh dunia menjadi lebih fokus terhadap penyelesaian proyek mereka, bukan lagi bagaimana membuat kustomasi time-schedule ataupun otomatisasi pelaporan, dua hal yang sering menghambat para Project Manager.
Tahun 1995 – VBA diintegrasikan pada Ms-Access. Hal ini diyakini merupakan lompatan besar bagi VBA untuk merebut hati para developer – terutama mereka yang ingin membuat aplikasi basis data dengan cepat dan mudah, dengan tidak dipusingkan oleh masalah konektivitas ataupun kompatibilitas program.
Tahun 1996 – VBA menjadi objek elemen dalam VB. Dahulu, sebelum VB 4.0 dirilis, integrasi VB-VBA belum dimungkinkan. Kini, dengan menggunakan object-library yang sama, VBA dapat diakses dengan mudah melalui lingkungan pengembangan (IDE) VB. Sehingga, pembuatan lintas aplikasi lebih dipermudah. Selain itu, pada tahun yang sama, VBA juga menggantikan peran Word Basic, bahasa macro sebelum VBA. Hal ini dilakukan karena kebutuhan otomatisasi dalam Ms-Word yang juga semakin meningkat dan dibutuhkan para developer.
Tahun 1997 – VBA 5.0 diluncurkan, dengan dukungan penuh untuk Ms-Office 97, kecuali Ms-PowerPoint dan Ms-Outlook. Selain itu juga, pada tahun yang sama, Microsoft mengumumkan akan melisensi VBA untuk para vendor yang berminat. Hal mengejutkan pun terjadi. Selang satu minggu dari pengumuman tersebut, 50 vendor terkenal melisensi aplikasi mereka untuk dapat berkolaborasi dengan VBA. Hal ini tentu memberikan keuntungan bagi bisnis aplikasi secara umum. Karena, selain aplikasi para vendor menggunakan standar yang sama untuk pemrograman aplikasinya, para developer mempunyai kesempatan yang sangat luas untuk melakukan pengembangan dan interoperabilitas program mereka dengan aplikasi yang memiliki lisensi VBA secara mudah, cepat dan berkesinambungan.
Tahun 1998 – VBA 6.0 dan VB.6.0 diluncurkan. Pada versi 6.0 inilah kolaborasi VB-VBA berlanjut dan semakin mantap. Dimana banyak model objek baru diperkenalkan pada versi ini. Dukungan baru dan perbaikan terutama ditekankan pada optimalisasi penggunaan teknologi OLE dan ActiveX, pembuatan class bagi objek terstruktur, koneksi database eksternal seperti Ms-Access dan Ms-SQL Server.
Tahun 2003 – adalah masa dimana Microsoft membuat suatu keputusan yang sulit. Dalam MSDN disebutkan bahwa “Tidak ada lagi perbaikan bagi VBA 6.0 dalam sistem Microsoft Office. Dengan kata lain, VBA tidak dikembangkan lebih jauh pada Office 2003, hanya revisi minor saja”. Meskipun demikian, Microsoft telah mengumumkan akan tetap mendukung VBA, setidaknya hingga Office 2007 dirilis. Keputusan Microsoft untuk tidak melakukan perbaikan bagi VBA 6.0 tersebut, sungguh merupakan suatu pertanda buruk bagi para developer, tentu jika mereka tidak mengetahui pasti alasan Microsoft tersebut. Banyak pandangan dan komentar yang muncul dari keputusan tersebut. Mulai dari permasalahan tim pengembang VBA yang sudah tidak didukung pendanaannya, hingga jadwal yang ketat bagi fitur dan teknologi baru Ms-Office 2003. Apapun alasannya, singkat kata, keputusan tersebut lebih disebabkan karena strategi yang telah berubah secara fundamental di dalam Microsoft, terutama bagi strategi pengembangan aplikasi di masa depan. Dimana, .NET telah menjadi Framework bagi sumber pengembangan aplikasi Microsoft di masa depan. Tak ayal semboyan .NET Framework : “Satu Framework, untuk semua OS” merupakan visi yang sangat ambisius dan penuh tantangan.

Selanjutnya, pada bagian II kita akan membahas turunan VB selanjutnya : VBScript !.