Pembuatan Database SQLite dengan VB.NET 2005

Tutorial ini mencoba menunjukkan bagaimana koneksi dengan SQLite dengan VB.NET 2005.
Kita membutuhkan sebuah DLL yang bernama System.Data.SQLite (http://sqlite.phxsoftware.com/) yang bersifat freeware…

Imports System.Data.SQLite
Imports System.IO

Private Sub btn_createdb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_createdb.Click

        'Save Dialog Box
        Dim f As New SaveFileDialog
        f.Filter = "SQLite 3 (*.db3)|*.db3|All Files|"
        f.ShowDialog()
        'Create Database
        Dim SQLconnect As New SQLite.SQLiteConnection()
        'Database Doesn't Exist so Created at Path
        SQLconnect.ConnectionString = "Data Source=" & f.FileName & ";"
        SQLconnect.Open()
        SQLconnect.Close()

    End Sub

Private Sub btn_tables_create_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_tables_create.Click

            Dim SQLconnect As New SQLite.SQLiteConnection()
            Dim SQLcommand As SQLiteCommand
            SQLconnect.ConnectionString = "Data Source=" & txt_dbpath.Text & ";"
            SQLconnect.Open()
            SQLcommand = SQLconnect.CreateCommand
            'SQL query to Create Table
            SQLcommand.CommandText = "CREATE TABLE " & txt_tables_name.Text & "(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, description TEXT, image BLOB);"
            SQLcommand.ExecuteNonQuery()
            SQLcommand.Dispose()
            SQLconnect.Close()
End Sub

Selamat mencoba!

Mengembalikan Image BLOB Menggunakan Web Service (VB.NET)

Pada kasus ini kita menggunakan SQLSERVER sebagai databasenya, dengan field seperti ini:

Field Tipe Data
==============
RowID int(11)
Picture BLOB

Yang perlu anda lakukan adalah mengganti parameter yang digunakan untuk koneksi ke SQLSERVER:
Buat method seperti ini pada Web Service Anda…

' Parameternya adalah sebuah id suatu record tertentu
Public Function GetPicture(ByVal RowID As Long) As Byte()
  Dim Con As SqlClient.SqlConnection
  Dim DA As SqlClient.SqlDataAdapter
  Dim SQL As String
  Dim BA As Byte()
  Dim SC As New SqlCommand

  SQL = "SELECT Picture FROM Pictures WHERE  RowID = " & RowID
  Con = New SqlConnection("User ID=YourID;password=YourPassword;" & _"Data Source=SQLSERVER;Initial Catalog=DatabaseName")

  SC.Connection = Con
  SC.Connection.Open()
  SC.CommandType = CommandType.Text
  SC.CommandText = SQL
  BA = CType(SC.ExecuteScalar(), Byte())
  SC.Connection.Close()
  SC.Dispose()
  Return BA

End Function

Kemudian siapkan sebuah picture box (PictureBox1) dan buat prosedur ini pada VB Desktop Anda:

Public Sub SetPicBox(ByVal ImageArray As Byte())
  Dim ArraySize As New Integer
  ArraySize = ImageArray.GetUpperBound(0)

  Dim fs As New System.IO.FileStream("tmp.gif",
  System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write)
  fs.Write(ImageArray, 0, ArraySize + 1)
  fs.Close()
  PictureBox1.Image = New Bitmap("tmp.gif")
End Sub

Dan terakhir pada event on_Load pada form Anda, buat prosedur ini.
Anda bisa menggantinya dengan event-event lain.
Pada contoh dibawah ini, kita mencoba menggambil record dengan nomor 23:

Private Sub frmPicture_Load(ByVal sender As Object,
  ByVal e As System.EventArgs) Handles MyBase.Load
  SetPicBox(YourService.GetPicture(23))
End Sub 

Nah, selamat mencoba!

Fungsi Explode/Split pada String dengan bahasa C

Pernah tahu fungsi explode PHP atau split nya VB.NET? fungsi tersebut sangat berguna bagi kita yang hendak melakukan tokenisasi… nah, kita bisa mencobanya pada bahasa C:
#include
#include
#include

void explode(char str[100],char hasil[10][50],char dasar,int *counter1){
int i,counter2=0;
for(i=0;i<strlen(str);i++){
if(str[i] == dasar){
counter2=0;
*counter1=*counter1 + 1;
}
else{
hasil[*counter1][counter2]=str[i];
counter2++;
}
}
}

void main(){
char str[100],hasil[10][50];
int counter1=0;
printf(“masukkan kalimat : “);fflush(stdin);gets(str);
char dasar = ‘ ‘;
explode(str,hasil,dasar,&counter1);
for(int i=0;i<=counter1;i++){
printf(“%s\n”,hasil[i]);
}
}
Nah silahkan mencoba…

Pemrograman XML dengan PHP

Ini tulisan sederhana untuk menambahkan data pada dokumen XML dengan PHP..
Studi kasus yang ada adalah buku tamu..

Pertama, kita buat terlebih dahulu sebuah file XML bernama “bukutamu.xml”, sebagai berikut:

<?xml version=”1.0″ encoding=”UTF-8″?>
<bukutamu>
<message>
<username>anton</username>
<email>anton@ukdw.ac.id</email>
<web>http://lecturer.ukdw.ac.id/anton</web&gt;
<pesan>hallo coba satu</pesan>
<kode>1</kode>
</message>
</bukutamu>

Kemudian untuk menambahkan data buku tamu baru adalah sebagai berikut:

file: bukutamu.html

Silahkan mengisi buku tamu sebagai berikut:<br>
<form name=”form2″ method=”post” action=”bukutamu2.php”>
<table width=”75%” border=”0″>
<tr>
<td width=”29%”>Uername</td>
<td width=”71%”><input name=”username” type=”text” id=”username” value=””></td>
</tr>
<tr>
<td>Email</td>
<td><input name=”email” type=”text” id=”email” value=””></td>
</tr>
<tr>
<td>Web / Situs</td>
<td> <input name=”web” type=”text” id=”web”>
<font color=”#FF0000″>*must use prefix ‘http://&#8217; first</font></td>
</tr>
<tr>
<td>Pesan</td>
<td><textarea name=”pesan” cols=”40″ rows=”5″ id=”pesan”></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type=”submit” name=”Submit” value=”Isi Buku Tamu”></td>
</tr>
</table>
</form>

Kemudian file bukutamu2.php:

if(isset($_REQUEST[“Submit”])){
$doc = new DOMDocument;
$doc->load(‘bukutamu.xml’);
$doc->formatOutput = true;

$bukutamu = $doc->getElementsByTagName(“bukutamu”);
foreach($bukutamu as $val)
$bukutamunode = $val;

$msgnode = $doc->createElement(‘message’,”);
$msgnode = $bukutamunode->appendChild($msgnode);

$usernode = $doc->createElement(‘username’,”);
$usernode = $msgnode->appendChild($usernode);

$uservalue = $doc->createTextNode($_REQUEST[“username”]);
$uservalue = $usernode->appendChild($uservalue);

$emailnode = $doc->createElement(’email’,”);
$emailnode = $msgnode->appendChild($emailnode);

$emailvalue = $doc->createTextNode($_REQUEST[“email”]);
$emailvalue = $emailnode->appendChild($emailvalue);

$webnode = $doc->createElement(‘web’,”);
$webnode = $msgnode->appendChild($webnode);

$webvalue = $doc->createTextNode($_REQUEST[“web”]);
$webvalue = $webnode->appendChild($webvalue);

$pesannode = $doc->createElement(‘pesan’,”);
$pesannode = $msgnode->appendChild($pesannode);

$pesanvalue = $doc->createTextNode($_REQUEST[“pesan”]);
$pesanvalue = $pesannode->appendChild($pesanvalue);

$h = $doc->save(“bukutamu.xml”);

if($h > 0){
echo “<p>Terimakasih atas partisipasi Anda telah mengisi buku tamu di situs kami.<br>”;

}
}

Menggunakan Object Collection dan Generic (VB) Part 1

Pada .NET disediakan banyak class collection yang dapat digunakan. Jika anda menggunakan .NET 1.1 object collection yang disediakan belum typed-safe karena belum ada metode Generic misal: anda dapat mencampurkan tipe data string dan integer pada object dictionary / ArrayList.

Dengan munculnya Generic di .NET 2.0 (VB2005) maka penggunaan object collection di .NET sudah typed-safe sehingga meningkatkan performance dari program yang anda buat.

Adapun object-object collection pada .NET 2.0 yang disediakan adalah:

  • Array
  • List
  • Dictionary
  • Sorted Dictionary
  • Quee
  • Stack

Continue reading

Dynamic Image Pada Crystal Report

Pada artikel ini saya akan membahas bagaimana caranya untuk menampilkan dynamic image pada crystal report dengan ASP.NET. Pada program yang saya buat, file gambar saya simpan pada folder di web servernya dengan pertimbangan performance, jika disimpan di database maka performance akan berkurang karena record dalam database menjadi besar, maka saya menyimpan datanya pada folder kemudian menyimpan nama filenya di database.

Adapun design database yang dibuat:

image

Data gambar disimpan pada folder secimages

image

Kemudian untuk mengambil data dari database untuk ditampilkan pada crystal report saya menggunakan cara menampungnya dulu kedalam object dataset karena jika mengambil langsung dari database akan menyulitkan jika aplikasi dipindah ke komp server lain (harus merubah computer name pada program).

Maka buat datasetnya dulu untuk datasource pada crystal report

image

Tambahkan satu field baru pada dataset section yaitu image_stream untuk menampung gambar yang akan kita tampilkan kedalam crystal report, kemudian ubah property DataType pada field image_stream menjadi System.Byte[];

image

Kemudian pada halaman report-nya (halaman yang ada komponen CrystalReportSource dan CrystalReportViewer) tambahkan kode sebagai berikut:

Continue reading

Penggunaan Struct

Bahan untuk Kelas Algo dan Strukdat C++

  • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel
    yang bernaung dalam satu nama yang sama dan memiliki kaitan satu
    sama lain.
  • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data
    sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau
    berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau
    struct itu sendiri.
  • Variabel-variabel yang menjadi anggota struct disebut dengan elemen
    struct.

Bentuk umum dari struct:

typedef struct{
   tipe_data <nama_var>;
   tipe_data <nama_var>;
   .... }

Struct bisa diumpamakan sebagai sebuah obyek, misalnya: obyek Mahasiswa. Struct Mahasiswa memiliki property atau atribut atau variabel yang melekat padanya:

  • NIM misal karakter sejumlah 8
  • Nama yaitu karakter
  • IPK yaitu bilangan pecahan

Continue reading

AJAX Revolusi Pada Aplikasi Berbasis Web

Selama satu tahun terakhir, perkembangan teknologi aplikasi berbasis web mengalami perubahan yang cukup signifikan dengan diperkenalkannya teknologi AJAX lewat artikel yang ditulis oleh Jesse James Garrett pada awal tahun 2005. AJAX adalah kependekan dari Asynchronous JavaScript and XML. Dengan teknik ini dimungkinkan suatu halaman web untuk memperbaharui dirinya tanpa harus melakukan full refresh. Jika biasanya anda harus lelah untuk menunggu lama ketika halaman web selesai untuk di-load, dan harus berhadapan dengan tampilan yang kurang interaktif dan responsif dibandingkan dengan aplikasi desktop, maka dengan teknik AJAX semua masalah itu dapat diatasi. Dengan AJAX aplikasi berbasis web menjadi lebih interaktif, responsif dan mudah digunakan seperti layaknya aplikasi berbasis desktop.

AJAX sebenarnya adalah gabungan dari beberapa teknologi web standar yang sudah ada yaitu: XHTML (eXtensible Hypertext Markup Language) dan CSS (Cascade Style Sheet) untuk standar presentasi dan strukturnya, menampilkan dan manipulasi halaman web menggunakan DOM (Document Object Model) , pertukaran data menggunakan XML (eXtensible Markup Language), asynchronous data retrieval menggunakan objek XMLHttpRequest, dan terakhir JavaScript yang berinteraksi secara dinamis dengan semua teknologi diatas. AJAX tidak tergantung pada teknologi server-side tertentu, anda dapat menggunakan AJAX menggunakan PHP, JSP atau ASP.NET.

AJAX pertama kali digunakan pada aplikasi Google Maps (http://maps.google.com) yaitu situs yang menyediakan layanan pencarian lokasi tertentu pada peta. Google Maps memanfaatkan teknik AJAX sehingga meskipun anda menggunakan browser untuk menjalankan aplikasi ini namun tampilan dan fungsionalitasnya sangat mirip dengan aplikasi desktop yang cepat dan responsif sehingga tidak perlu menunggu lama untuk mendapatkan lokasi yang diinginkan. Google juga menggunakan teknik AJAX dibeberapa aplikasi yang lain seperti GMail (aplikasi email dari google), Google Calendar dan Google Suggest, Selain Google beberapa perusahaan besar IT seperti Yahoo, dan Microsoft juga menggunakan teknologi ini pada beberapa aplikasi berbasis web milik mereka. Yahoo menerapkan AJAX pada aplikasi Yahoo Mail versi beta, jika anda menggunakan aplikasi email pada Yahoo anda akan merasakan kemiripannya dengan aplikasi mail berbasis desktop seperti Microsoft Outlook atau Mozilla Thunderbird.

image

Selain banyak kelebihan dari teknologi AJAX, ada juga beberapa hal yang harus diperhatikan yaitu bahwa dibutuhkan browser yang cukup baru untuk menjalankan AJAX dengan sempurna, paling tidak IE versi 6 keatas atau FireFox versi 1.5 keatas. Masalah juga ditemukan bila pengguna menggunakan browser pada PDA yang kemampuannya terbatas.