Rabu, 05 Oktober 2011

Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap

Selamat siang agan sekalian.Apa kabarnya !? Mudah-mudahan selalu dalam keadaan sehat dan semangat untuk belajar.Pada postingan kali ini , saya akan memberikan materi mengenai Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap.Yuph , secara perlahan saya mulai bermigrasi ke Delphi XE.Jujur saja , saya sedikit bingung melototin tampilan IDE baru dari Embarcadero ini.Mungkin karena sudah familiar dengan Delphi 7 dan belum akrab sama IDE ini.Oia , saya menggunakan Delphi XE , bukan Delphi XE2.Lalu , maksud dari judul diatas apa !? Fokus saya dalam membangun sebuah aplikasi , ialah optimalisasi penggunaan program untuk kepentingan aplikasi database.Untuk itu , ketika pertama kali saya mencumbui IDE ini , sasaran saya adalah membangun aplikasi database berbasis client-server dengan konsep Multi-Tier.Wow , jangan dulu bingung.Karena pembahasan kali ini tidak sedalam itu , wong saya aja belum mudeng , hahaha.Kalo agan belum punya Delphi XE , bisa di download di situs resminya,Search aja di google :D.Maka dari itu , mari kita mulai untuk melucuti busana Cameron Diaz :hammer , Delphi XE maksudnya.Buat aplikasi baru.Ganti caption dari form1 menjadi Server Form dan tambahkan component berikut : TDSServer , TDSServerClass , TDSTCPServerTransport.Ketiga component tersebut bisa agan temukan di tab pallete DataSnap Server.Perhatikan gambar berikut.















Okey , selanjutnya pilih SaveAll.Simpan nama unit dengan nama MyServer dan nama project dengan nama MyServerProj.Selanjutnya , isi property server pada TDSServerClass dan TDSTCPServerTransport dengan TDSServer.Nah , selanjutnya buat unit baru , caranya pilih file > new > unit.Simpan unit baru tersebut dengan nama MyClass.Anda akan menemukan code pada unit baru tersebut sebagai berikut.

unit MyClass;
 
interface
 
implementation

end.

Tambahkan kode berikut pada unit tersebut.Kita akan membuat sebuah function yang berfungsi untuk operasi penjumlahan.Simpel kan !? Biar gampang dimengerti gans :)

unit MyClass;

interface

uses classes;

type
  {$METHODINFO ON} //directive on
  TMyClass=class(TComponent) //inisialisasi object
    function sum(const a,b:Double):Double; //inisialisasi function
  end;
  {$METHODINFO OFF} //directive off

implementation
{TMyClass}

//implementasi function
function TMyClass.sum(const a: Double; const b: Double):Double;
begin
  Result:=a+b; //menjumlahkan nila a dan b , simple kan !? o.O
end;
end.

Jangan lupa , include unit MyClass di unit MyServer.Caranya , pilih Server Form.Lalu pilih file > use units dan pilih MyClass.Selanjutnya , kita akan menentukan class yang akan di panggil oleh client.Caranya , pada TDSServerClass event OnGetClass , ketikan kode berikut.

procedure TForm1.DSServerClass1GetClass(DSServerClass: TDSServerClass;
  var PersistentClass: TPersistentClass);
begin
  PersistentClass:=TMyClass;
end;
end.

Ooowww kaaayyyy , setting untuk server sudah selesai.Sekarang saatnya melakukan setting untuk client.Pilih project manager (disamping kanan) , lalu klik kanan pada project group dan pilih add new project.Maka akan muncul dialog.Pilih VCL Form Application.Harusnya , muncul form baru.Rubah captionnya menjadi Client Form.SaveAll.Simpan file unit dengan nama MyClient , file project dengan nama MyClientProj , dan Group Project dengan nama DataSnapTest.Bila berhasil , maka tampilan project anda harusnya seperti gambar di bawah ini.














Selanjutnya , tambahkan 3 buah component TEdit dan 1 buah component TButton.Rubah property name ketiga TEdit tersebut masing-masing , editA , editB dan editResult.Rubah property caption TButton dengan nama Hitung.Setelah itu , tambahkan component lagi yaitu TSQLConnection yang terdapat pada tab pallete dbExpress.Rubah property driver menjadi DataSnap , connectionName menjadi DataSnapCONNECTION dan loginPrompt menjadi false.Susun component tersebut sebagai berikut.















Masuk ke tahap yang paling penting.Pada project manager , double-klik MyServerProj.dproj , setelah itu klik kanan dan pilih run without debugging.Maka form Server akan running , pilih minimize pada form dan biarkan tetap running.Selanjutnya pada project manager . double-klik MyClientProj.dproj.Lalu pilih component TSQLConnection pada form client dan rubah property Connected menjadi true.Penting , biarkan form server tetap running , karena bila tidak , maka component TSQLConnection property connected tidak bisa di set menjadi true.Selanjutnya , klik kanan pada component TSQLConnection dan pilih Generate DataSnap client classes.Maka akan muncul unit baru yang berisi informasi mengenai implementasi class pada server dan method yang terdapat pada class.Simpan unit baru tersebut dengan nama MyDSClient.Jangan lupa untuk meng-include-kan (bahasanya apa sih -,-") unit tersebut di unit MyClient.Caranya pilih form client , lalu pilih file > use unit dan pilih MyDSClient.Okay , masuk ke tahap akhir.Sebagaimana dikatakan sebelumnya , bahwa kita akan melakukan operasi penjumlahan.Dimana nilai kesatu yaitu editA akan di jumlahkan dengan nilai kedua yaitu editB.Dan ketika tombol hitung di tekan , maka hasilnya akan tampil di editResult.Kita sudah membuat function untuk process tersebut yang terdapat pada MyClass.Dan kita akan memanggilnya di form client.Double-klik button hitung dan ketikan kode berikut.

procedure TForm2.Button1Click(Sender: TObject);
var temp:TMyClassClient;//inisialisasi TMyCLassClient
    a,b:Double;
begin
    //deklarasi temp yang merupakan TMyClassClient dan
    //menjadikan TSQLConnection sebagai parameter
   temp:=TMyClassClient.Create(SQLConnection1.DBXConnection);
   try
    a:=StrToFloat(editA.Text);
    b:=StrToFloat(editB.Text);
    editResult.Text:=FloatToStr(temp.sum(a,b));
   finally
    temp.Free;
   end;
end;

Yuph , beres.Pada kondisi MyServerProj running , double-klick MyClientProj lalu pilih build dan run.Silahkan inputkan angka pada editA dan editB lalu tekan tombol hitung.Maka hasilnya akan tampil di editResult.Wow , untuk membuat aplikasi yang hanya melakukan operasi penjumlahan kok repot sekali !? Haha.Mungkin itu tanggapan anda.Jangan lihat dari fungsionalitas aplikasinya.Namun coba telaah konsep pembuatannya.Anda telah berhasil membuat aplikasi berbasis client-server dengan DataSnap.Bayangkan ketika kita membuat aplikasi dengan banyak client yang secara simultan menginputkan data ke database.Dengan konsep seperti ini , penanganan proses tersebut menjadi jauh lebih mudah dan performanya lebih cepat.Oia , sebelum anda menutup aplikasi ini jangan lupa untuk merubah TSQLConnection property connected menjadi false.Okey , sekian untuk postingan kali ini semoga bermanfaat.
Untuk source code tutorial ini bisa agan download DISINI.

Simak Juga Tutorial Lainnya:

3 komentar:

Anonim mengatakan...

mantab gan.... sangat membantu ane bikin ta

Anonim mengatakan...

mas saya masih bingung fungsi data snap
bisa minta tolong untuk di jelaskan mas

misalkan saya punya sebuah aplikasi inventory
untuk mengunputkan barang itu saya ingin memakai aplikasi client yang terinstal di laptop A tanpa instal mysql dsana,, namun mysql itu saya instal di komputer B,, apakah dengan data snap ini yang masih dalam satu jaringan saya bisa mengakses database yang ada pada komputer B dari komputer A

klo iya bagaimana cara pengaplikasiannya

mohon ilmunya

Azriel mengatakan...

Yang bikin artikel aja ga ngerti 😄

Posting Komentar